Finalmente encontrei a solução:
rm /usr/bin/java
update-alternatives --config java
Agora funciona removendo esse binário, estava causando problemas. Não sabe se update-alternatives
teve algum efeito, mas o último aviso não foi exibido.
Eu tentei instalar o openjdk6, openjdk7, oracle8 ... Mas sempre o mesmo erro quando eu quero executar java, por exemplo com java -version
:
java: erro ao carregar bibliotecas compartilhadas: libjli.so: não é possível abrir o arquivo de objeto compartilhado: Nenhum arquivo ou diretório desse tipo
Eu tentei com links simbólicos tentando reconhecer libjli.so
, mas não funcionou
Depois de desinstalar todas as versões, siga os passos mostrados aqui Como desinstalar completamente o Java? , e instalando novamente, não pode fazer com que o erro desapareça. Mesmo se eu desinstalar tudo de novo, se eu escrever no terminal java -version
ele ainda me lança o mesmo erro.
Estou fazendo tudo isso com o usuário sudo.
Obrigado
EDITAR: Usando o Ubuntu 14.04 LTS Server
EDIT 2: Instalar o Openjdk7, Oracle7 e Oracle8, usando update-alternatives --config java
me diz isso (em espanhol, mas vou tentar traduzir, 3 linhas de informação)
"há apenas uma alternativa no grupo de links java em /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Nothing to configure."
"update-alternatives: warning: forçando a reinstalação do alternativo /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
porque o grupo de links do Java está corrompido"
"update-alternatives: aviso: /usr/bin/java
não será substituído por um link"
Finalmente encontrei a solução:
rm /usr/bin/java
update-alternatives --config java
Agora funciona removendo esse binário, estava causando problemas. Não sabe se update-alternatives
teve algum efeito, mas o último aviso não foi exibido.
Eu encontrei a mesma pergunta no CentOS quando instalei o jdk1.8.
Eu resolvi isso por:
primeiro, você deve dar permissão de execução ao arquivo e, em seguida, instalá-lo e configurá-lo.
chmod a+x jdk-8u151-linux-x64.tar.gz
na verdade, o arquivo libji.so
está no diretório
jdk1.8.0_151/jre/lib/amd64/jli/libjli.so
Encontrei esse problema quando criei um link físico para o executável java e tentei executá-lo. Estou presumindo que ele estava procurando por suas bibliotecas usando um caminho relativo para o binário executável.
Eu tentei essas duas opções e cada uma funcionou para mim:
ln -s $(which java) /usr/bin/${my_binary_name}
)