La selezione della VM (Virtual Machine) in uso durante lo sviluppo in Java dipende dal settaggio della variabile d’ambiente JAVA_HOME : ecco perchè è di vitale importanza capire come e dove settare tale variabile. Vediamo la configurazione della variabile d’ambiente JAVA_HOME all’interno di un sistema Linux, e in particolare per le distro Ubuntu e Fedora.

Per prima cosa, verifichiamo se nel nostro sistema è già installata una versione di Java eseguendo il comando

user@host:~$ java -version

In molte recenti distro Linux, è già presente l’enviroment java ma nel caso non ci fosse, lo possiamo installare senza troppi problemi.
Procediamo dunque all’installazione del JDK nei nostri sistemi Ubuntu e Fedora:

UBUNTU

user@host:~$ sudo apt-get install sun-java6-jdk
Password:
Reading package lists... Done
Building dependency tree
Reading state information... Done
[......................................]

FEDORA 

[user@host ~]$ sudo yum install java-1.6.0-openjdk.i586
Loaded plugins: refresh-packagekit
Setting up Install Process
[......................................]

In entrambi i casi, dopo l’installazione, procediamo nuovamente al controllo della versione installata con il comando

UBUNTU

user@host:~$ java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
FEDORA 
[user@host ~]$ java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6) (fedora-33.b16.fc12-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

Se il JDK installato non è settato come default, allora possiamo procedere nel modo seguente:

UBUNTU
user@host:~$ sudo update-alternatives --config java

There are 2 alternatives which provide `java'.

Selection    Alternative
-----------------------------------------------
*         1    /usr/bin/gij-wrapper-4.1
+        2    /usr/lib/jvm/java-6-sun/jre/bin/java

Press enter to keep the default[*], or type selection number: 2
Using `/usr/lib/jvm/java-6-sun/jre/bin/java' to provide `java'.
FEDORA 
[user@host ~]$ sudo update-alternatives --config java

There are 2 programs which provide 'java'.

Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

Enter to keep the current selection[+], or type selection number:

A questo punto è arrivato il momento di settare la variabile JAVA_HOME : editiamo dunque il file ~/.bash_profile che si trova tra i file nascosti della cartella principale di ogni utenza Linux (nel caso in cui volessimo configurare tale variabile di sistema per tutti gli utenti è sufficiente eseguire i passi che vedremo tra poco nel file /etc/profile).

~/.bash_profile è uno script di startuo che generalmente viene eseguito una volta sola: questo file viene utilizzato per tutti quei comandi che vengono eseguiti quando l’utente esegue il login nel sistema Linux. E’ pratica comune dunque utilizzare questo file per settare le variabilil d’ambiente, per creare alias a comandi via shell, ecc.
Editiamo quindi il file con il comando

$ vi ~/.bash_profile

e, usando la sintassi export JAVA_HOME=<percorso-installazione-java> procediamo alla modifica del file

export JAVA_HOME=/usr/java/jdk1.6.0_0

e modifichiamo la variabile PATH come segue

export PATH=$PATH:/usr/java/jdk1.6.0_0/bin

Salviamo il file, chiudiamo tutto ed eseguiamo il logout e successivamente il login nel nostro sistema. Per controllare che tutto sia andato a buon fine, è sufficiente eseguire la stampa di tali variabili come segue:

$ echo $JAVA_HOME
$ echo $PATH

Se tutto ha funzionato correttamente, vedremo nel nostro terminale la stampa del percorso che abbiamo precedentemente impostato, altrimenti una riga vuota. Questa procedura si può ripetere per tutti quei framework o applicativi che richiedono il settaggio di variabili d’ambiente (come la variabile UIMA_HOME per l’utilizzo del framework UIMA).

Tip: Possiamo usare il comando seguente per trovare il path dell’eseguibile java in UNIX / Linux:
$ which java

Vota Articolo: