SDB:Impostare l'Ambiente Java da usare
Provato su openSUSE | Articoli consigliati | Articoli correlati | |||
|
Questo articolo spiega come usare update-alternatives per selezionare la versione di Java da usare con openSUSE, tra le versioni installate. È anche un riferimento per usare update-alternatives in altre situazioni; update-alternatives è infatti un modo comodo per impostare una funzionalità, applicazione o altro usata da un sistema GNU/Linux, scegliendola tra più opzioni disponibili, per cui openSUSE ne fa un ampio uso.
Indice
Selezionare Java con il sistema delle alternative
openSUSE e SUSE usano il sistema update-alternatives (man 8 update-alternatives
) per impostare l'ambiente Java predefinito con cui lanciare (e sviluppare) le applicazioni scritte in Java, plugin per i browser web incluso. Di conseguenza /usr/bin/java è un link simbolico a /etc/alternatives/java, che punta al comando java
predefinito per il tuo sistema:
/etc/alternatives/java
/usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/jre/bin/java
Visualizzare le impostazioni predefinite
Per visualizzare il dettaglio delle impostazioni di una modalità gestita da update-alternatives, usa il seguente comando (non è necessario essere root, ma allora si deve usare il percorso completo):
java - auto mode link currently points to /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java /usr/lib64/jdk_Oracle/bin/java - priority 3 slave java.1.gz: /usr/lib64/jdk_Oracle/man/man1/java.1.gz slave jre: /usr/lib64/jdk_Oracle/jre ... slave tnameserv: /usr/lib64/jdk_Oracle/bin/tnameserv slave tnameserv.1.gz: /usr/lib64/jdk_Oracle/man/man1/tnameserv.1.gz /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java - priority 17147 slave java.1.gz: /usr/share/man/man1/java-java-1.7.0-openjdk.1.gz slave jre: /usr/lib64/jvm/jre-1.7.0-openjdk ... slave tnameserv: /usr/lib64/jvm/jre-1.7.0-openjdk/bin/tnameserv slave tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.7.0-openjdk.1.gz Current 'best' version is '/usr/lib64/jvm/jre-1.7.0-openjdk/bin/java'.
Ad ogni diversa versione di java installata è assegnata una certa priorità, per cui il collegamento simbolico con il numero più alto è l'alternativa predefinita. Questa sarà anche l'alternativa corrente se non si sono apportate manualmente delle modifiche. In questo modo update-alternatives determina l'alternativa 'best'<tt>, come si vede nell'ultima riga del risultato del comando riportata qui sopra (in questo caso la versione <tt>'best'<tt> è la preimpostata ed è attualmente in uso, vedi la riga con <tt>link currently point...)
Impostare JRE/JDK
Per impostare l'Ambiente di esecuzione Java, o JRE, predefinito, avvia come root il seguente comando:
There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java 17147 auto mode 1 /usr/lib64/jdk_Oracle/bin/java 3 manual mode 2 /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java 17147 manual mode Press enter to keep the current choice[*], or type selection number:
L'asterisco indica la scelta corrente, se si digita 1 dopo i due punti si ottiene:
Press enter to keep the current choice[*], or type selection number: 1 update-alternatives: using /usr/lib64/jdk_Oracle/bin/java to provide /usr/bin/java (java) in manual mode.
Adesso readlink -f /usr/bin/java
punta a /usr/lib64/jdk1.7.0_07/bin/java. E il collegamento simbolico è ora in stato di modalità "manuale" (manual mode), indipendentemente dal fatto che al link relativo alla modalità auto sia assegnata una priorità (Priority) più alta, per cui la selezione 1 è ore la macchina Java in uso. Infatti:
# update-alternatives --display java java - manual mode link currently points to /usr/lib64/jdk_Oracle/bin/java /usr/lib64/jdk_Oracle/bin/java - priority 3 slave java.1.gz: /usr/lib64/jdk_Oracle/man/man1/java.1.gz slave jre: /usr/lib64/jdk_Oracle/jre ... slave tnameserv: /usr/lib64/jdk_Oracle/bin/tnameserv slave tnameserv.1.gz: /usr/lib64/jdk_Oracle/man/man1/tnameserv.1.gz /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java - priority 17147 slave java.1.gz: /usr/share/man/man1/java-java-1.7.0-openjdk.1.gz slave jre: /usr/lib64/jvm/jre-1.7.0-openjdk ... slave tnameserv: /usr/lib64/jvm/jre-1.7.0-openjdk/bin/tnameserv slave tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.7.0-openjdk.1.gz Current 'best' version is '/usr/lib64/jvm/jre-1.7.0-openjdk/bin/java'.
La versione 'best' è sempre jre-1.7.0-openjdk ma ora il collegamento simbolico a java e in "manual mode" e usa jdk_Oracle. Puoi tornare alla modalità automatica usando l'opzione --auto:
update-alternatives: using /usr/lib64/jvm/jre-1.7.0-openjdk/bin/java to provide /usr/bin/java (java) in auto mode.
Per l'Ambiente di sviluppo Java, o JDK usa invece javac come argomento di update-alternatives.
Impostare il plugin Java
Il plugin Java si configura con l'argomento javaplugin (il link simbolico è infatti /usr/lib64/browser-plugins/javaplugin.so<tt>, senza <tt>64 su macchine a 32 bit). Il plugin predefinito si chiama IcedTeaPlugin.so ed è quello di IcedTea/openjdk (libnpjp2.so è quello fornito da Oracle (SUN) Java). Per modificare il plugin di default usa il comando:
There are 2 choices for the alternative javaplugin (providing /usr/lib64/browser-plugins/javaplugin.so). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib64/IcedTeaPlugin.so 17106 auto mode 1 /usr/lib64/IcedTeaPlugin.so 17106 manual mode 2 /usr/lib64/jdk_Oracle/jre/lib/amd64/libnpjp2.so 3 manual mode Press enter to keep the current choice[*], or type selection number:
L'asterisco indica la scelta corrente, se si digita 2 dopo i due punti si ottiene:
Press enter to keep the current choice[*], or type selection number: 2 update-alternatives: using /usr/lib64/jdk_Oracle/jre/lib/amd64/libnpjp2.so to provide /usr/lib64/browser-plugins/javaplugin.so (javaplugin) in manual mode.
Collegamenti esterni
La pagina originale che ha fatto da matrice per questo articolo, sul Wiki openSUSE "old" in inglese