A instalação do openjdk-7-jdk não atualiza o java (que ainda é a versão 1.6)

A instalação do openjdk-7-jdk não atualiza o java (que ainda é a versão 1.6)

Estou tendo problemas para atualizar o Java. Estou executando o Ubuntu 11.10.

Posso executar sudo apt-get install openjdk-7-jdke 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 javaos 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 –configo 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/javaou algo parecido /etc/java-7-openjdk, deverá ver os arquivos de configuração.
java.confoujvm.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.dpara 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.

informação relacionada