Como descobrir qual versão do Java na pasta Java instalada?

2

Uma versão do java está instalada na minha máquina Linux. Quando eu tento isso:

teste @ root $: javac -version

Dado o resultado como:

javac jdk1.7.0_80.

Agora, meu problema é que não sei onde está essa pasta java (1.7.0_80). Eu tenho uma pasta chamada " java-7-oracle " em usr / lib / jvm. Eu estou suspeitando que seria a pasta para a versão instalada do java.

Agora eu tenho uma pasta java e quero saber qual versão do java ela é?

Como ??

    
por Mr ASquare 04.01.2016 / 11:43

3 respostas

3

Acho que você pode acompanhar tudo isso verificando onde os seus binários java estão vinculados.

       #which javac
          /usr/bin/javac   
       #ls -ln /usr/bin/java
           lrwxrwxrwx. 1 0 0 22 Nov 27 04:54 /usr/bin/java -> /etc/alternatives/java
       #ls -ln /usr/bin/javac
            lrwxrwxrwx. 1 0 0 23 Nov 27 04:54 /usr/bin/javac -> /etc/alternatives/javac
       # ls -ln /usr/bin/javadoc
            lrwxrwxrwx. 1 0 0 25 Nov 27 04:54 /usr/bin/javadoc -> /etc/alternatives/javadoc

e finalmente:

#ls -ld /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 Nov 27 04:54 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

portanto, minha instalação do java é:

   /usr/lib/jvm/jre-1.7.0-openjdk.x86_64

Suponho que você possa rastrear qualquer binário como este.

    
por 04.01.2016 / 11:53
2

Descobrir qual binário é executado quando você digita apenas o nome é feito usando which e usando readlink você pode condensar o processo em uma única linha.

readlink -e $(which java)

readlink -e imprime o valor de um link simbólico ou nome de arquivo canônico, e o -e garante que ele siga todos os componentes de forma recursiva.

tony@trinity:~$ readlink -e $(which java)
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java

nota: eu não tenho o javac instalado na máquina que eu testei, então usei o java, mas o acima irá funcionar para qualquer binário.

Você também parece estar pedindo para descobrir qual versão do java está em uma pasta específica? Por que você acabou de fazer isso,

/full/path/java -version

que impede o Linux de procurar o caminho e encontrar o binário java diretamente. No seu caso,

/usr/lib/jvm/java-7-oracle/javac -version
    
por 04.01.2016 / 12:55
0

No Debian e seus derivados, você poderia usar:

update-alternatives --config java

Ou

update-alternatives --list java

Com a opção --config, você pode definir o java necessário na lista de alternativas.

    
por 18.12.2017 / 13:08