Onde posso encontrar o Java SDK no Linux depois de instalá-lo?
185
Instalei o JDK usando o apt-get install, mas não sei onde está minha pasta jdk. Eu preciso definir o caminho para isso. Alguém tem uma pista sobre a localização?
Tente /usr/local/java/distribuições originais baixadas do Oracle.
Zon
Respostas:
385
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
Orth olhando em / usr / java também em algumas configurações que eu vi
jlb83
Se você é para adicionar o caminho JDK no estúdio android, adicione usr / lib / jvm / java-8-oracle / /
Rohit Rokde
3
Parece que meu caminho é /usr/lib/jvm/java-7-openjdk-amd64.
Einverne #
2
Eu acho que o readlink é o mais elegante (e eficiente), mas sugiro 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.
Steven the Facilly Fun
@Winnemucca Funciona para mim, você pode encontrar onde está o java e depois encontrar o caminho do jdk.
einverne
45
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.
Isso é específico do debian (pelo menos). Outras distros podem não ter isso
dequis 21/10
2
@dequis, é uma resposta específica ao debian, desde a pergunta mencionada apt-gete a distribuição a ser feita Debian 2.6.26. AFAIK, deve ser o mesmo para todos os derivativos debian.
forcefsck
2
Estou apenas apontando para outras pessoas. Eu sei que é válido para esta questão em particular.
dequis
1
update-alternative --list | grep java trabalhou para mim em RHEL
verdade. eu aposto que é depois de apt-get install
O Surrican
6
Na verdade, isso não aponta para um JDK completo. 1. É um link simbólico e, mesmo que você leia o link simbólico, o binário também não está dentro de um JDK. Por exemplo, se eu executar o comando, 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.
Zombies
No Centos / RHL É o que eu prefiro encontrar o JDK (se instalado). 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.
Steven the Facilly Fun
12
Esta pergunta será movida, mas você pode fazer o seguinte
Eu gosto da segunda opção - simples e útil se você tiver vários JREs / JDKs e quiser encontrá-los todos.
Amos M. Carpenter
"find / -name 'javac'" é menos digitado, mas requer privilégio de administrador (root) ou você receberá muitas mensagens negadas com permissão.
Steven the facilmente divertido
9
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
Se não for root (admin), você receberá muitas mensagens de permissão negada.
Steven the facilmente divertido
7
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.
Isso funcionou para mim, retornando / usr / java / jdk- [versão] no Fedora
Sina Madani
3
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
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 ...
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/local/java/
distribuições originais baixadas do Oracle.Respostas:
Isso depende um pouco do seu sistema de pacotes ... se o
java
comando funcionar, você pode digitarreadlink -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 useapt-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).O Debian é o mesmo.
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
fonte
/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.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.
fonte
apt-get
e a distribuição a ser feitaDebian 2.6.26
. AFAIK, deve ser o mesmo para todos os derivativos debian.deve lhe dar algo como
fonte
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 delib/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
ou
fonte
Use find para localizá-lo. Deve estar em
/usr
algum lugar:Ao executar o comando, se houver muitas mensagens "Permissão negada" ofuscando os resultados reais encontrados, basta redirecionar o stderr para / dev / null
fonte
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
fonte
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
fonte
Simples, tente:
É / usr / local / java / jdk [versão]
fonte
o comando:
sudo update-alternatives --config java
encontrará o caminho completo de todas as versões Java instaladasfonte
Essa pergunta ainda parece relevante, e a resposta parece ser um alvo em movimento.
No meu sistema debian (buster):
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 dedefault-java
. Há também umopenjdk-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.
fonte
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é
fonte
No Linux Fedora30, estão disponíveis várias versões do JDK java completo, especificamente nomes de pacotes:
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:
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:
fonte
Esta é a melhor maneira que funcionou para mim Execute este comando: -
fonte