Respostas:
Isso depende um pouco do seu sistema de pacotes ... se o java
comando 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*' -prune
como 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-get
e 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_HOME
contém um caminho de lib/tools.jar
. No elenco, /usr/lib/jvm/java-8-oracle/bin
isso 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 /usr
algum 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 alternatives
comando 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-11
diretó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