Atualização:
Encontrou um site com uma boa explicação: LINK
No link:
Depois temos que fazer alguma configuração.
O Debian tem um script para manter diferentes versões de programas como java
chamado update-alternatives
.
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 1065 update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0/bin/javac 1065
Onde 1065 é uma prioridade dada.
Para verificar minha instalação, eu uso o parâmetro –config
update-alternatives --config java
isto imprime:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/jdk1.7.0/bin/java 1065 auto mode 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode 2 /usr/lib/jvm/jdk1.7.0/bin/java 1065 manual mode
E como 1065 é maior que 1061, o novo java 7 instalado será usado por padrão na minha máquina
java -version
impressões:
java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
Notas: Isso pode torná-lo mais compreensível.
SLES11 # which java /usr/bin/java SLES11 # update-alternatives --list java /usr/lib64/jvm/jre-1.6.0-ibm/bin/java SLES11 # update-alternatives --display java java - status is auto. link currently points to /usr/lib64/jvm/jre-1.6.0-ibm/bin/java /usr/lib64/jvm/jre-1.6.0-ibm/bin/java - priority 1608 slave rmiregistry: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmiregistry slave tnameserv: /usr/lib64/jvm/jre-1.6.0-ibm/bin/tnameserv slave rmid: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmid slave jre_exports: /usr/lib64/jvm-exports/jre-1.6.0-ibm slave policytool: /usr/lib64/jvm/jre-1.6.0-ibm/bin/policytool slave keytool: /usr/lib64/jvm/jre-1.6.0-ibm/bin/keytool slave jre: /usr/lib64/jvm/jre-1.6.0-ibm Current 'best' version is /usr/lib64/jvm/jre-1.6.0-ibm/bin/java.
A página man fornece o caminho que as update-alternatives usam para seu diretório.
SLES11 # pwd /etc/alternatives SLES11 # ll lrwxrwxrwx 1 root root 37 Mar 19 06:03 java -> /usr/lib64/jvm/jre-1.6.0-ibm/bin/java lrwxrwxrwx 1 root root 28 Mar 19 06:03 jre -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 28 Mar 19 06:03 jre_1.6.0 -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 Mar 19 06:03 jre_1.6.0_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 Mar 19 06:03 jre_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1 root root 28 Mar 19 06:03 jre_ibm -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 Mar 19 06:03 jre_ibm_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm
Fazendo a mudança se você já os instalou e só precisa alterar o padrão.
SLES11 # update-alternatives --config java There is only 1 program which provides java (/usr/lib64/jvm/jre-1.6.0-ibm/bin/java). Nothing to configure.
Resposta original:
Se você olhar em /etc/java
ou algo parecido com /etc/java-7-openjdk
, deverá ver os arquivos de configuração.
java.conf
ou jvm.cfg
Isso geralmente (dependendo) do arquivo de configuração define suas opções. Você pode ter várias versões do java instaladas ao mesmo tempo e alterar as variáveis de inicialização para determinar qual delas é sua JVM padrão.
do CentOS java.conf
# If you have the a base JRE package installed # (e.g. java-1.6.0-openjdk): #JAVA_HOME=$JVM_ROOT/jre # If you have the a devel JDK package installed # (e.g. java-1.6.0-openjdk-devel): #JAVA_HOME=$JVM_ROOT/java
do Ubuntu jvm.cfg
# List of JVMs that can be used as an option to java, javac, etc. # Order is important -- first in this list is the default JVM. # NOTE that this both this file and its format are UNSUPPORTED and # WILL GO AWAY in a future release. # # You may also select a JVM in an arbitrary location with the # "-XXaltjvm=" option, but that too is unsupported # and may not be available in a future release. # -server KNOWN -client IGNORE -hotspot ERROR -classic WARN -native ERROR -green ERROR -jamvm KNOWN -cacao KNOWN -zero KNOWN -shark ALIASED_TO -zero
No Ubuntu há um programa chamado update-java-alternatives
Estas são as poucas linhas superiores da página man
NAME update-java-alternatives - update alternatives for jre/sdk installations SYNOPSIS update-java-alternatives [--jre] [--plugin] [-t|--test|-v|--verbose] -l|--list [] -s|--set -a|--auto -h|-?|--help DESCRIPTION update-java-alternatives updates all alternatives belonging to one runtime or development kit for the Java language. A package does provide these information of it's alternatives in /usr/lib/jvm/..jinfo.
root@ubuntul:/# update-java-alternatives -l java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk
-s|--set Set all alternatives of the registered jre/sdk installation to the program path provided by the installation.
O que normalmente também vejo são links em /etc/profile.d
para ambientes de inicialização do Java.
Meu palpite é que suas bibliotecas java foram instaladas no mesmo local e os arquivos de configuração ainda estão com a versão original. Você só precisa fornecer o novo caminho da JVM.