1.2 Εγκατάσταση της γλώσσας Java
© Γιάννης Κωστάρας
<- | ∆ | -> |
Εγκατάσταση της Java
Όπως είδαμε, η Java αποτελείται από μια Εικονική Μηχανή που επιτρέπει την εκτέλεση των εφαρμογών Java σε οποιαδήποτε πλατφόρμα (Windows, Mac, Linux, Unix). Για να εκτελέσετε μια εφαρμογή Java χρειάζεστε το Java Runtime Environment (JRE). Για να αναπτύξετε όμως μια εφαρμογή Java χρειάζεστε το Java Development Kit (JDK) το οποίο περιλαμβάνει το JRE.
Θα εγκαταστήσουμε την τελευταία έκδοση της Java SE ή Standard Edition για τις πιο δημοφιλής πλατφόρμες Windows, Linux, MacOSX. Από την έκδοση 11 και μετά, έχει αλλάξει η άδεια χρήσης. Για επαγγελματική χρήση ενδέχεται να υπάρχουν χρεώσεις για το Oracle JDK (διαβάστε προσεκτικά την άδεια χρήσης), ενώ υπάρχει και η δωρεάν ανοικτού κώδικα έκδοση OpenJDK (άδεια χρήσης: GNU General Public License v2 with Classpath Exception (GPLv2+CPE)). Οι δυο εγκαταστάσεις δουλεύουν ακριβώς το ίδιο εκτός από ελάχιστες διαφορές.
Εγκατάσταση του OpenJDK
Πλοηγηθείτε στο jdk.java.net και κατεβάστε την τελευταία έκδοση για την πλατφόρμα σας. Αποσυμπιέστε το και ακολουθείστε τα βήματα που περιγράφονται παρακάτω για να το εισάγετε στο PATH
. Καλό είναι να το εγκαταστήσετε σε μια διαδρομή (path) χωρίς κενά.
Εγκατάσταση του Oracle JDK στα Windows
- Πλοηγηθείτε στον ιστοχώρο της Oracle και κατεβάστε την τελευταία έκδοση του JDK. Αποδεχθείτε την άδεια χρήσης (License Agreement) και κατεβάστε το για την πλατφόρμα σας (
jdk-XX.X.X_windows-x64_bin.exe
. Σημείωση. Η έκδοση της Java που κατεβάσατε είναι 64 bit και ‘τρέχει’ σε 64-bit Windows. Αν τρέχετε παλιά έκδοση των Windows η οποία μπορεί να εκτελέσει μόνο 32 bit προγράμματα, τότε θα πρέπει να κατεβάσετε την τελευταία έκδοση x86 του JDK 8 (jdk-8uXXX-windows-i586.exe
). - Κάντε διπλό κλικ πάνω στο αρχείο αυτό και ακολουθήστε τα βήματα του οδηγού. Καλό είναι να το εγκαταστήσετε σε μια διαδρομή (path) χωρίς κενά, π.χ.
C:\Programs\Java
αντί για την προτεινόμενη διαδρομήC:\Program Files\Java
. Ο οδηγός θα σας ζητήσει στη συνέχεια να εγκαταστήσετε και το JRE. ΕπιλέξτεC:\Programs\Java\jdkXX.X.X\jre
. - Προσθέστε την εγκατάσταση στη μεταβλητή περιβάλλοντος
PATH
ως εξής:
- Δεξί κλικ στο εικονίδιο Computer ⇒ Properties
- System Properties
- Καρτέλα “Advanced” ⇒ Environment Variables
- “System Variables”,
- Επιλέξτε New και εισάγετε τη νέα μεταβλητή περιβάλλοντος
JAVA_HOME
δίνοντάς της την τιμήC:\Programs\Java\jdkXX.X.X
, όπουXX.X.X
η έκδοση που κατεβάσατε π.χ.13.0.2
- Επιλέξτε “PATH” ⇒ Edit και προσθέστε
%JAVA_HOME%\bin;
μπροστά από οποιαδήποτε άλλη τιμή της μεταβλητής αυτής - Πατήστε ΟΚ σε όλα τ’ ανοικτά παράθυρα
Εικόνα 1.2.1 Ορισμός μεταβλητών περιβάλλοντος στα Windows
Εγκατάσταση του Oracle JDK στο MacOS
- Πλοηγηθείτε στον ιστοχώρο της Oracle και κατεβάστε την τελευταία έκδοση του JDK. Αποδεχθείτε την άδεια χρήσης (License Agreement) και κατεβάστε το για την πλατφόρμα σας (
jdk-XX.X.X_osx-x64_bin.dmg
), όπουXX.X.X
η έκδοση που κατεβάσατε π.χ.13.0.2
. - Εγκαταστήστε το αρχείο κατά τα γνωστά.
- Ορίστε τις ακόλουθες μεταβλητές περιβάλλοντος στο αρχείο
.bash_profile
:JAVA_HOME=$HOME/Programs/Java/jdkXX.X.X
καιPATH=$JAVA_HOME/bin:$PATH
Αν έχετε και άλλες εγκατεστημένες εκδόσεις της Java, τότε για να ορίσετε π.χ. την έκδοση που κατεβάσατε ως την εξ’ ορισμού έκδοση στο σύστημά σας ακολουθήστε τα παρακάτω βήματα (σε ένα κέλυφος) (οι εκδόσεις στο σύστημά σας θα διαφέρουν από αυτές του παρακάτω παραδείγματος):
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (8):
13.0.2, x86_64: "Java SE 13.0.2" /Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home
11.0.1, x86_64: "Java SE 11.0.1" /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
9.0.4, x86_64: "Java SE 9.0.4" /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
1.8.0_181, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home
Στη συνέχεια μπορείτε να ορίσετε τη μεταβλητή περιβάλλοντος JAVA_HOME
στο .bash_profile
όπως είδαμε παραπάνω δίνοντάς της την τιμή export JAVA_HOME=`/usr/libexec/java_home -v 13.0.2`
.
Πηγή: StackOverflow
Εγκατάσταση του Oracle JDK στο Linux
- Πλοηγηθείτε στον ιστοχώρο της Oracle και κατεβάστε την τελευταία έκδοση του JDK. Αποδεχθείτε την άδεια χρήσης (License Agreement) και κατεβάστε το για την πλατφόρμα σας (προτιμήστε το αρχείο
jdk-XX.X.X_linux-x64_bin.tar.gz
), όπουXX.X.X
η έκδοση που κατεβάσατε π.χ.13.0.2
. - Αποσυμπιέστε το (π.χ. από τον εξερευνητή αρχείων κάντε δεξί κλικ και επιλέξτε Extract here). Μετακινήστε το φάκελο
jdkXX.X.X
σε μια διαδρομή (path) χωρίς κενά, π.χ.$HOME/Programs/Java
. Συνίσταται να την εγκαταστήσετε στη διαδρομή/usr/lib/jvm
δίνοντας τις εντολές:sudo mkdir -p /usr/lib/jvm/jdk-XX.X.X
καιsudo mv $HOME/Downloads/jdkXX.X.X/* /usr/lib/jvm/jdk-XX.X.X/
. - Ορίστε τις ακόλουθες μεταβλητές περιβάλλοντος στο αρχείο
.bashrc
:JAVA_HOME=$HOME/Programs/Java/jdkXX.X.X
ήJAVA_HOME=/usr/lib/jvm/jdkXX.X.X
καιPATH=$JAVA_HOME/bin:$PATH
Αν έχετε και άλλες εγκατεστημένες εκδόσεις της Java, τότε για να ορίσετε την έκδοση που κατεβάσατε ως την εξ’ ορισμού έκδοση στο σύστημά σας:
$ sudo update-alternatives –-config java
και επιλέξτε τη από το μενού που εμφανίζεται.
Εναλλακτικά μπορείτε να την εγκαταστήσετε ως την εξ’ ορισμού με την εντολή (π.χ. XX.X.X εδώ είναι 13.0.2):
$ sudo update-alternatives –-install "/usr/bin/java" "java" "/usr/lib/jvm/jdk-13.0.3/bin/java" 1010
$ sudo update-alternatives –-install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk-13.0.3/bin/javac" 1010
Επαλήθευση εγκατάστασης
Αν όλα πήγαν καλά, τότε μπορείτε ν’ ανοίξετε μια προτροπή DOS (command prompt) ή ένα κέλυφος (shell) και να δώσετε τις εντολές (η έκδοση που κατεβάσατε θα διαφέρει από τα παρακάτω παραδείγματα):
$ java –version
java version "12" 2019-03-19
Java(TM) SE Runtime Environment (build 12+33)
Java HotSpot(TM) 64-Bit Server VM (build 12+33, mixed mode, sharing)
για το Oracle JDK, ενώ για το OpenJDK:
$ java –version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
$ jshell
| Welcome to JShell -- Version 12.0.1
| For an introduction type: /help intro
jshell> 2+2
$1 ==> 4
jshell> (Ctrl+D)
Η έκδοσή σας μπορεί να διαφέρει από την παραπάνω.
Το jshell
, όπως θα δούμε, είναι ένα νέο κέλυφος Java που έρχεται μαζί με την έκδοση 9 της Java (ή νεώτερη) και μας επιτρέπει να δοκιμάζουμε εντολές κλπ. εύκολα και γρήγορα.
Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments - IDEs)
Αν και μπορείτε να γράψετε ολόκληρες εφαρμογές Java με τη χρήση ενός απλού επεξεργαστή κειμένου όπως το Notepad ή το vi, τα Ολοκληρωμένα Περιβάλλοντα Εργασίας (ΟΠΕ) σας παρέχουν πολλά καλούδια που σας βοηθούν στην ανάπτυξη των εφαρμογών σας γρηγορότερα, όπως αυτόματη συμπλήρωση κώδικα, online βοήθεια κλπ.
Τα πιο δημοφιλή ΟΠΕ για Java είναι:
Σ’ αυτή τη σειρά μαθημάτων θα χρησιμοποιήσουμε το NetBeans, αλλά μπορείτε κάλλιστα να χρησιμοποιήσετε όποιο ΟΠΕ ή επεξεργαστή κειμένου προτιμάτε.
Αν δεν επιθυμείτε να εγκαταστήσετε κάποιο πρόγραμμα στον Η/Υ σας, μπορείτε ακόμα να χρησιμοποιήσετε κάποιο από τα παρακάτω online:
- Browxy
- Codecademy
- CodeChef
- CodePad
- Codiva
- CompileJava
- Guru99
- Ideone
- JDoodle
- TryJShell - Online JShell
- Learn Java Online
- Paiza.io
- Repl.it
- Rextester
- Online Java Debugger
- Trinket
- Tutorialspoint
- Visualizer
Εγκατάσταση του Apache NetBeans
- Από τον ιστοχώρο της Apache κατεβάστε την τελευταία έκδοση του Apache NetBeans για την πλατφόρμα σας.
- Μπορείτε να κατεβάσετε και να αποσυμπιέστε το αρχείο
netbeans-xx.0-bin.zip
σε ένα φάκελο (π.χ.$HOME/Programs
) ή τον κατάλληλο οδηγό εγκατάστασης για την πλατφόρμα σας (Windows/MacOSX/Linux). - Ελέξτε ότι το αρχείο
<netbeans>/etc/netbeans.conf
περιέχει γραμμή παρόμοια με την παρακάτω ανάλογα με την έκδοση JDK που εγκαταστήσατε προηγουμένως:netbeans_jdkhome="/<path>/jdk-XX.X.X.jdk/Contents/Home/"
αν χρησιμοποιείτε Mac ή
netbeans_jdkhome="/<path>/jdkXX.X.X/"
αν χρησιμοποιείτε Windows/Linux/Unix.
Επαλήθευση εγκατάστασης
- Ξεκινήστε το NetBeans. Ανάλογα με την πλατφόρμα σας (Windows: κάντε διπλό κλικ στο αρχείο
netbeans.exe
ήnetbeans64.exe
)(Linux/MacOSX: από ένα κέλυφος πληκτρολογήστε./netbeans &
) από το φάκελοbin
. - Επιλέξτε το μενού Tools –> Open Java Platform Shell
| System Information: | Java version: 13.0.3+11 | Virtual Machine: Java HotSpot(TM) 64-Bit Server VM 13.0.3+11 | Classpath: | /<path>/netbeans/java/modules/ext/nb-mod-jshell-probe.jar | [1]-> System.out.println("Καλημέρα κόσμε") Καλημέρα κόσμε
Μπορείτε να προσθέσετε κι άλλες εκδόσεις JDK από το μενού Tools --> Java Platforms
. Πατώντας το κουμπί Add Platform
μπορείτε να πλοηγηθείτε στο φάκελο που έχετε εγκαταστήσει ένα JDK.
Εικόνα 1.2.2 Ορισμός πλατφορμών JDK
JShell
Το κέλυφος Java (JShell) εισήχθηκε στη Java από την έκδοση 9 και μετά. Πιο πάνω είδαμε πώς να το εκκινήσουμε τόσο από τη γραμμή εντολών του Λ.Σ. όσο και από το NetBeans. Στη βιβλιογραφία αναφέρεται ως Read-Evaluate-Print-Loop. Όπως είδαμε, η Java είναι μια μεταγλωττισμένη γλώσσα, δηλ. για να εκτελεστεί κάποιο πρόγραμμα γραμμένο σε Java, θα πρέπει πρώτα να το μεταγλωττίσουμε και μετά να το εκτελέσουμε. Για μικρά προγράμματα ή για να δοκιμάσουμε διάφορα χαρακτηριστικά της γλώσσας, αυτό τρώει πολύ χρόνο. Το JShell δημιουργήθηκε γι’ αυτόν ακριβώς το σκοπό. Μπορούμε μ’ αυτό να εκτελέσουμε εντολές Java χωρίς να χρειάζεται πρώτα να περάσουμε από τη φάση της μεταγλώττισης.
Σ’ αυτή την ενότητα θα δούμε πώς μπορούμε να το χρησιμοποιήσουμε.
Το JShell αποτελείται από:
- Snippets, π.χ.
2+2
- Εντολές, π.χ.
/help
- Scripts π.χ.
$ jshell --startup PRINTING
Σημαντική Σημείωση Για να μπορέσετε να δείτε ελληνικά στο JShell στα Windows, θα πρέπει να δώσετε τις εξής εντολές σε ένα παράθυρο DOS
C:\ chcp 737
C:\ jshell
| Welcome to JShell -- Version 13
| For an introduction type: /help intro
jshell> System.setOut(new PrintStream(System.out, true, "cp737"));
jshell> System.out.println("Γειά")
Γειά
Για να μπορέσετε να δείτε ελληνικά στο jshell του NetBeans στα Windows, θα πρέπει να ορίσετε την μεταβλητή περιβάλλοντος JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
, όπως περιγράψαμε στην αρχή αυτών των σημειώσεων. Εναλλακτικά, ανοίξτε το αρχείο etc/netbeans.conf
και προσθέστε στο τέλος του κλειδιού netbeans_default_options
, δηλ. μετά το -J-XX:+IgnoreUnrecognizedVMOptions
το -J-Dfile.encoding=UTF8
. Επανεκκινήστε το NetBeans, και θα πρέπει να βλέπετε πλέον ελληνικά στο JShell.
Εντολές JShell
jshell> /help
/list [<name or id>|-all|-start] -- list the source you have typed
/edit <name or id> -- edit a source entry referenced by name or id
/save [-all|-history|-start] <file> -- save snippet source to a file
/open <file> -- open a file as source input
/vars [<name or id>|-all|-start] -- list the declared variables and their values
/types [<name or id>|-all|-start] -- list the type declarations
/methods [<name or id>|-all|-start] -- list the declared methods and their signatures
/imports -- list the imported items
/exit -- exit jshell
/env [-class-path <path>] [-module-path <path>] [-add-modules <modules>] -- view or change the evaluation context
/reset -- reset jshell
/reload [-restore] [-quiet] [-class-path <path>] [-module-path <path>] -- reset and replay relevant history -- current or previous (-restore)
/history -- history of what you have typed
/help [<command>|<subject>] -- get information about jshell
/set editor|start|feedback|mode|prompt|truncation|format -- set configuration information
/? [<command>|<subject>] -- get information about using the jshell tool
/! -- rerun last snippet -- see /help rerun
/<id> -- rerun snippets by ID or ID range -- see /help rerun
/-<n> -- rerun n-th previous snippet -- see /help rerun
Χρήσιμα πλήκτρα στο JShell
Πίνακας 1.2.1 Πλοήγηση
Πλήκτρο(-α) | Αποτέλεσμα |
ENTER |
Εισαγωγή νέας γραμμής |
<- |
Πίσω ένας χαρακτήρας |
-> |
Μπροστά ένας χαρακτήρας |
^ |
Πάνω μια γραμμή, πίσω στο ιστορικό |
v |
Κάτω μια γραμμή, μπροστά στο ιστορικό |
Ctrl+A |
Μετακίνηση στην αρχή της γραμμής |
Ctrl+E |
Μετακίνηση στο τέλος της γραμμής |
Alt+B |
Μετακίνηση πίσω μια λέξη |
Alt+F |
Μετακίνηση μπροστά μια λέξη |
Ctrl+R (Ctrl+S) |
Αναζήτηση πίσω (μπροστά) στο ιστορικό |
Πίνακας 1.2.2 Τροποποίηση κειμένου
Πλήκτρο(-α) | Αποτέλεσμα |
Tab |
Αυτόματη συμπλήρωση (auto-completion) |
Delete |
Διαγραφή του χαρακτήρα μετά τον δρομέα |
Backspace |
Διαγραφή του χαρακτήρα πριν δρομέα |
Ctrl+K |
Διαγραφή του κειμένου από το δρομέα μέχρι το τέλος της γραμμής |
Alt+D |
Διαγραφή του κειμένου από το δρομέα μέχρι το τέλος της λέξης |
Ctrl+Y |
Επικόλληση του πιο πρόσφατα διαγραμμένου κειμένου |
Alt+Y |
Μετακίνηση στο διαγραμμένο κείμενο |
Ctrl+L
: καθαρισμός οθόνης
Στις επόμενες διαλέξεις αυτής της εβδομάδας θα μάθουμε τις βασικές εντολές της γλώσσας χρησιμοποιώντας το JShell.
Πηγές
- JDK 10 Documentation
- Java Platform, Standard Edition Java Shell User’s Guide
- JShell Tutorial
- JShell Tutorial
- Apache NetBeans
- Hillar G.C. (2017), Java 9 with JShell, Packt.
<- | ∆ | -> |