Respostas:
Isso depende um pouco do seu sistema de pacotes ... se o javacomando funcionar, você pode digitar readlink -f $(which java)para encontrar a localização do comando java. No sistema OpenSUSE, agora estou retornando /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(mas este não é um sistema que use apt-get).
No Ubuntu, parece que é /usr/lib/jvm/java-6-openjdk/ para o OpenJDK, e em alguns outros subdiretórios do /usr/lib/jvm/Suns JDK (e outras implementações também, eu acho).
Para qualquer pacote, você pode determinar quais arquivos ele instala e onde os instala, consultando o dpkg. Por exemplo, para o pacote 'openjdk-6-jdk':dpkg -L openjdk-6-jdk
/usr/lib/jvm/java-7-openjdk-amd64.
readlink -f $(which javac) - observe o 'c' caso haja uma estranha mistura de JDK e JRE na mesma máquina. O JDK inclui um compilador (javac) e um JRE não. No entanto, se o caminho não estiver correto, o que irá falhar e você pode tentar o seguinte: find /usr/java -wholename '*ava/jdk*' -prunecomo observo em um comentário abaixo.
update-java-alternatives -l
lhe dirá qual implementação java é o padrão para o seu sistema e onde no sistema de arquivos está instalado. Verifique o manual para mais opções.
apt-gete a distribuição a ser feita Debian 2.6.26. AFAIK, deve ser o mesmo para todos os derivativos debian.
$ which java
deve lhe dar algo como
/usr/bin/java
readlink -f $(which javac)ele será impresso /usr/lib/jvm/java-8-oracle/bin/javac. Essa pasta bin NÃO é um JDK. Teste geral ácido-base para verificar se é um JDK para verificar se a corrente $JAVA_HOMEcontém um caminho de lib/tools.jar. No elenco, /usr/lib/jvm/java-8-oracle/binisso não é verdade, portanto, não é um JDK.
find /usr/java -wholename '*ava/jdk*' -prune Mas o comportamento depende se você está falando sobre o OpenJDK ou Oracle Java e como ele foi instalado em primeiro lugar.
Esta pergunta será movida, mas você pode fazer o seguinte
which javac
ou
cd /
find . -name 'javac'
Use find para localizá-lo. Deve estar em /usralgum lugar:
find /usr -name java
Ao executar o comando, se houver muitas mensagens "Permissão negada" ofuscando os resultados reais encontrados, basta redirecionar o stderr para / dev / null
find /usr -name java 2> /dev/null
Outra melhor maneira de encontrar o caminho da pasta Java é usar o alternativescomando no Fedora Linux (eu sei que é para o Ubuntu, mas eu bati neste post do google apenas pelo título). Só quero compartilhar pessoas como eu procurando respostas para o sabor do fedora.
Para exibir todas as informações sobre java
alternatives --display java
Processo de três etapas: Primeiro: abra o Terminal -> $ whereis java
daria uma saída como esta:
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
Segundo:
ls -l /usr/bin/java
daria uma saída como esta:
lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java
Terceiro: a
ls -l /etc/alternatives/java
saída é o caminho JDK:
lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Simples, tente:
É / usr / local / java / jdk [versão]
Essa pergunta ainda parece relevante, e a resposta parece ser um alvo em movimento.
No meu sistema debian (buster):
> update-java-alternatives -l
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
No entanto, se você realmente olhar para lá, verá vários diretórios e links simbólicos colocados pelo sistema de pacotes para simplificar a manutenção futura.
O diretório real é java-11-openjdk-amd64, com outro link simbólico de default-java. Há também um openjdk-11diretório, mas parece conter apenas um arquivo source.zip.
Dado isso, APENAS para o Debian, eu acho que o melhor valor a ser usado é /usr/lib/jvm/default-java, pois isso sempre deve ser válido, mesmo se você decidir instalar uma versão totalmente diferente do java, ou mesmo trocar de fornecedor.
O motivo normal para querer saber o caminho é porque algum aplicativo o deseja e você provavelmente não deseja que o aplicativo seja interrompido porque fez uma atualização que alterou os números de versão.
no OpenSUSE 13.1 / 13.2, seu: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
número da versão pode ser 1.7.x 1.8.x etc. verifique a versão do gerenciador de software que você instalou ...
André
No Linux Fedora30, estão disponíveis várias versões do JDK java completo, especificamente nomes de pacotes:
java-1.8.0-openjdk-devel.x86_64
java-11-openjdk-devel.x86_64
Uma vez instalados, eles são encontrados em: /usr/lib/jvm
Para selecionar o local / diretório de um JDK de desenvolvimento completo (que é diferente do JRE de tempo de execução mais simples), procure as entradas:
ls -ld java*openjdk*
Aqui estão duas boas opções, que são links para versões específicas, nas quais você terá que selecionar a versão:
/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
Esta é a melhor maneira que funcionou para mim Execute este comando: -
$(dirname $(readlink $(which javac)))/java_home