.png)
Estou tendo problemas para atualizar o Java. Estou executando o Ubuntu 11.10.
Posso executar sudo apt-get install openjdk-7-jdk
e ele é concluído com êxito. javac -version
é 1,7, mas java -version
é 1,6. Isto é semelhante aeste problemamas a minha questão não é, até onde sei, o caminho.
$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Obrigado.
Responder1
Atualizar:
Encontrei um site que tem uma explicação muito boa:LINK
Do link:
Então temos que fazer algumas configurações.
O Debian possui um script para manter diferentes versões de programas como java
os chamados update-alternatives
.
alternativas de atualização --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 1065 alternativas de atualização --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 –config
o parâmetro
update-alternatives --config java
que imprime:
There are 2 choices for the alternative java (providing /usr/bin/java).
Status de prioridade do caminho de seleção -------------------------------------------------- ---------- * 0 /usr/lib/jvm/jdk1.7.0/bin/java 1065 modo automático 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo manual 2 /usr/lib/jvm/jdk1.7.0/bin/java modo manual 1065
E como 1065 é maior que 1061, o Java 7 recém-instalado será usado por padrão nas
java -version
impressões da minha máquina:
versão java "1.7.0" Java(TM) SE Runtime Environment (compilação 1.7.0-b147) VM de servidor Java HotSpot(TM) de 64 bits (compilação 21.0-b17, modo misto)
Notas: Isso pode torná-lo mais compreensível.
SLES11 # qual java /usr/bin/java SLES11 #alternativas de atualização --list java /usr/lib64/jvm/jre-1.6.0-ibm/bin/java SLES11 #alternativas de atualização --display java java - o status é automático. link atualmente aponta para /usr/lib64/jvm/jre-1.6.0-ibm/bin/java /usr/lib64/jvm/jre-1.6.0-ibm/bin/java - prioridade 1608 escravo rmiregistry: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmiregistry escravo tnameserv: /usr/lib64/jvm/jre-1.6.0-ibm/bin/tnameserv escravo rmid: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmid escravo jre_exports: /usr/lib64/jvm-exports/jre-1.6.0-ibm ferramenta de política escrava: /usr/lib64/jvm/jre-1.6.0-ibm/bin/policytool ferramenta de chave escrava: /usr/lib64/jvm/jre-1.6.0-ibm/bin/keytool escravo jre: /usr/lib64/jvm/jre-1.6.0-ibm A 'melhor' versão atual é /usr/lib64/jvm/jre-1.6.0-ibm/bin/java.
A página man fornece o caminho que o update-alternatives usa para seu diretório.
SLES11#pwd /etc/alternativas SLES11#ll lrwxrwxrwx 1 raiz raiz 37 19 de março 06:03 java -> /usr/lib64/jvm/jre-1.6.0-ibm/bin/java lrwxrwxrwx 1 root root 28 de março 19 06:03 jre -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 28 de março 19 06:03 jre_1.6.0 -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 19 de março 06:03 jre_1.6.0_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 19 de março 06:03 jre_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1 root root 28 de março 19 06:03 jre_ibm -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 19 de março 06:03 jre_ibm_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm
Fazendo a alteração caso já os tenha instalados e só precise alterar o padrão.
SLES11 #alternativas de atualização --config java Existe apenas 1 programa que fornece java (/usr/lib64/jvm/jre-1.6.0-ibm/bin/java). Nada para configurar.
Resposta Original:
Se você olhar /etc/java
ou algo parecido /etc/java-7-openjdk
, deverá ver os arquivos de configuração.
java.conf
oujvm.cfg
Isso normalmente (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 CentOSjava.conf
# Se você tiver um pacote JRE básico instalado # (por exemplo, java-1.6.0-openjdk): #JAVA_HOME=$JVM_ROOT/jre # Se você tiver o pacote devel JDK instalado # (por exemplo, java-1.6.0-openjdk-devel): #JAVA_HOME=$JVM_ROOT/java
do Ubuntujvm.cfg
# Lista de JVMs que podem ser usadas como opção para java, javac, etc. # A ordem é importante – o primeiro nesta lista é a JVM padrão. # OBSERVE que tanto este arquivo quanto seu formato não são suportados e # IRÁ DESAPARECER em uma versão futura. # # Você também pode selecionar uma JVM em um local arbitrário com o # opção "-XXaltjvm=", mas isso também não é suportado # e pode não estar disponível em uma versão futura. # -servidor CONHECIDO -cliente IGNORAR - ERRO de ponto de acesso -AVISO clássico -ERRO nativo -verde ERRO -jamvm CONHECIDO -cacau CONHECIDO -zero CONHECIDO -tubarão ALIASED_TO -zero
No Ubuntu existe um programa chamado update-java-alternatives
Estas são as primeiras linhas da página de manual
NOME update-java-alternatives - alternativas de atualização para instalações jre/sdk SINOPSE update-java-alternatives [--jre] [--plugin] [-t|--test|-v|--verbose] -l|--lista [] -s|--conjunto -a|--automático -h|-?|--ajuda DESCRIÇÃO update-java-alternatives atualiza todas as alternativas pertencentes a um tempo de execução ou kit de desenvolvimento para a linguagem Java. Um pacote fornece esses informações sobre suas alternativas em /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|--conjunto Defina todas as alternativas da instalação jre/sdk registrada para o caminho do programa fornecido pela instalação.
O que normalmente também verei são links /etc/profile.d
para ambientes de inicialização Java.
Meu palpite é que suas bibliotecas Java foram instaladas no mesmo local e os arquivos de configuração ainda estão padronizados para a versão original. Você só precisa fornecer o novo caminho da JVM.