Como verificar se o Java está instalado no rhel

1

Eu me levantei. Fiquei curioso se o JDK está instalado ou não, então eu corri um comando de um shell (bash).

whereis java

Ele retornou:

java: /usr/bin/java

Então eu naveguei para o caminho para verificar o programa Java.

ls -l java

Que retornou:

lrwxrwxrwx 1 root root 26 May 2016 10:52 java -> /usr/java/default/bin/java

até agora tudo bem, no entanto, quando executou o programa java:

java
-bash: java: command not found

Parece que o java tem link simbólico, mas / usr / java / default / bin / java não existe mais. Eu só quero verificar se o java (jdk) está instalado ou não, mas pelo que eu vi eu não estou muito certo. Eu gostaria de acreditar que não está instalado, então porque o sistema retornou java: / usr / bin / java?

    
por DaeYoung 10.05.2016 / 19:08

2 respostas

2

I would like to believe that it is not installed if so why the system returned java: /usr/bin/java?

whereis não resolve o symlink. Portanto, se / usr / bin / java ainda existir, mesmo que o destino do symlink seja quebrado, ele ainda retornará java: /usr/bin/java . Eu recomendo que você use type -a java para obter o resultado correto. Por favor, note que o symlink target OU não-symlink source file, ambos devem ser executáveis ( chmod +x para configurá-lo), senão o comando type -a retornará não encontrado mesmo que o arquivo exista ( type ainda retornará independente do executável) .

Então, eu posso simplificar como abaixo:

whereis: Still return found even symlink broken or non-executable.

type: Return found even non-executable, and return not found if symlink broken.

type -a: Return not found when symlink is broken or non-executable.

Todos eles retornarão não encontrados se o arquivo de entrada não existir.

Então, o que posso aconselhar é instalar o JDK novamente, que "Oracle JDK" é preferível do que "OpenJDK" .

Um bom artigo pode ser encontrado aqui .

Isso é o que você pode fazer (suponha que seu sistema seja x64):

sudo rpm -ivh jdk-8u91-linux-x64.rpm
sudo rpm -ivh jdk-8u91-linux-x64-demos.rpm 

O número de versão da versão 8u91 acima é mantido atualizado. Por isso, você deve sempre visitar Sites da Oracle para descobrir a versão mais recente. Clique no botão DOWNLOAD do JDK para acessar esta página que mostra o número da versão mais recente e seu nome de arquivo correto.

Você também pode baixar os documentos que o link real pode ser encontrado aqui page , e descompacte-o (Suponha que seu JDK tenha sido instalado em /usr/java/jdk1.8.0_91/ ):

sudo unzip jdk-8u91-docs-all.zip -d /usr/java/jdk1.8.0_91/ #optional

Em seguida, use esses dois comandos para escolher o javac e o java corretos. Eu acredito que você só tem uma opção (Este exemplo mostra jdk1.8.0_74 devido ao meu não é o mais recente 8u91):

$ sudo alternatives --config javac

There are 2 programs which provide 'javac'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.fc21.x86_64/bin/javac
   2           /usr/java/jdk1.8.0_74/bin/javac

Enter to keep the current selection[+], or type selection number: 2
$
$ sudo alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.fc21.x86_64/jre/bin/java
 + 2           /usr/java/jdk1.8.0_74/jre/bin/java

Enter to keep the current selection[+], or type selection number: 2
$ 
    
por 10.05.2016 / 19:54
1

Você pode ter que configurar o Alternatives para apontar para java, é explicado no meu link.

Eu tenho notado com a tentativa de manter o Oracle Java instalado sobre o openjdk que você tem que ter certeza de que tudo está ligando corretamente e executando a versão correta do java.

Se estiver usando uma máquina do sistema RPM, usei as etapas no link abaixo para fazer com que ela funcione.

Instale o Oracle Java JDK CentOS

O comando Java abaixo funcionaria como uma validação de que as alternativas foram configuradas corretamente.

java -version

[root@somecomputer thebtm]# java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

Outro nó secundário é que, se você já tiver o Oracle Java instalado e fizer o download e instalar um novo java rpm, será necessário atualizar alternativas para apontar para a nova versão do java

[root@somecomputer thebtm]# alternatives --config java

There are 5 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/java/jdk1.8.0_66/bin/java
   2           /usr/java/jdk1.8.0_66/jre/bin/java
   3           /usr/java/jre1.8.0_77/bin/java
   4           /usr/java/jdk1.8.0_77/jre/bin/java
 + 5           /usr/java/jre1.8.0_91/bin/java

Enter to keep the current selection[+], or type selection number: 5
[root@somecomputer thebtm]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
    
por 10.05.2016 / 19:12

Tags