¿Dónde puedo encontrar el SDK de Java en Linux después de instalarlo?

185

Instalé JDK usando apt-get install pero no sé dónde está mi carpeta jdk. Necesito establecer el camino para eso. ¿Alguien tiene una pista sobre la ubicación?

dinesh707
fuente
1
Distribución de Linux: Debian 2.6.26
dinesh707
Pruebe las /usr/local/java/distribuciones originales descargadas de Oracle.
Zon

Respuestas:

385

Esto depende un poco de su sistema de paquetes ... si el javacomando funciona, puede escribir readlink -f $(which java)para encontrar la ubicación del comando java. En el sistema OpenSUSE en el que estoy ahora, regresa /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(pero este no es un sistema que usa apt-get).


En Ubuntu, parece que está en /usr/lib/jvm/java-6-openjdk/ OpenJDK, y en algún otro subdirectorio de /usr/lib/jvm/Suns JDK (y otras implementaciones, creo).

Debian es lo mismo.


Para cualquier paquete dado, puede determinar qué archivos instala y dónde los instala consultando dpkg. Por ejemplo para el paquete 'openjdk-6-jdk':dpkg -L openjdk-6-jdk

Paŭlo Ebermann
fuente
1
Orth busca en / usr / java también en algunas configuraciones que he visto
jlb83
Si va a agregar la ruta JDK en Android Studio, agregue esto / usr / lib / jvm / java-8-oracle /
Rohit Rokde
3
Parece que mi camino es /usr/lib/jvm/java-7-openjdk-amd64.
einverne
2
Creo que readlink como se da es más elegante (y eficiente), pero sugiero readlink -f $(which javac) : tenga en cuenta la 'c' en caso de que haya una extraña mezcla de JDK y JRE en la misma máquina. El JDK incluye un compilador (javac) y un JRE no. Sin embargo, si la ruta no es correcta, lo que fallará y puede intentar esto: find /usr/java -wholename '*ava/jdk*' -prunecomo noto en un comentario a continuación.
Steven el fácilmente divertido
@ Winnemucca Funciona para mí, puedes encontrar dónde está Java y luego puedes encontrar dónde está la ruta jdk.
einverne
45
update-java-alternatives -l

le dirá qué implementación de Java es la predeterminada para su sistema y en qué parte del sistema de archivos está instalada. Consulte el manual para más opciones.

forcefsck
fuente
77
Esto es específico de Debian (al menos). Es posible que otras distribuciones no tengan esto
requisito
2
@dequis, es una respuesta específica de debian, ya que la pregunta mencionada apt-gety la distribución son Debian 2.6.26. AFAIK, debería ser el mismo para todos los derivados de Debian.
forcefsck
2
Solo lo estoy señalando para otras personas. Sé que es válido para esta pregunta en particular.
dequis
1
actualización-alternativas --lista | grep java trabajó para mí en RHEL
Abierto
30
$ which java 

debería darte algo como

/usr/bin/java
El surrican
fuente
2
cierto. apuesto a que es después de apt-get install
The Surrican
66
Esto en realidad no apunta a un JDK completo. 1. Es un enlace simbólico, e incluso si lee el enlace simbólico, el binario tampoco está dentro de un JDK. Por ejemplo, si ejecuto el comando readlink -f $(which javac)se imprime /usr/lib/jvm/java-8-oracle/bin/javac. Esa carpeta bin NO es un JDK. Prueba general de ácido-base para ver si es un JDK para ver si la corriente $JAVA_HOMEcontiene una ruta de lib/tools.jar. En el reparto de /usr/lib/jvm/java-8-oracle/bineso no es cierto, por lo tanto, no es un JDK.
Zombies
En Centos / RHL Esto es lo que prefiero encontrar el JDK (si está instalado) find /usr/java -wholename '*ava/jdk*' -prune Pero el comportamiento depende de si estás hablando de OpenJDK u Oracle Java y cómo se instaló en primer lugar.
Steven el fácilmente divertido
12

Esta pregunta se moverá pero puede hacer lo siguiente

which javac

o

cd /
find . -name 'javac'
Andrew T Finnell
fuente
Me gusta la segunda opción: simple y útil si tiene varios JRE / JDK y desea encontrarlos todos.
Amos M. Carpenter
"find / -name 'javac'" escribe menos, pero requiere privilegios de administrador (root) o recibirá muchos permisos denegados.
Steven el fácilmente divertido
9

Use buscar para ubicarlo. Debería estar debajo de /usralguna parte:

find /usr -name java

Al ejecutar el comando, si hay demasiados mensajes de "Permiso denegado" que ofuscan los resultados reales encontrados, simplemente redirija stderr a / dev / null

find /usr -name java 2> /dev/null
Brent Worden
fuente
1
Si no es root (administrador), recibirá muchos mensajes de Permiso denegado.
Steven el fácilmente divertido
7

Otra mejor manera de encontrar la ruta de la carpeta Java es usar el alternativescomando en Fedora Linux (sé que es para Ubuntu, pero llegué a esta publicación de Google solo por su título). Solo quiero compartir en caso de personas como yo buscando respuestas para el sabor de fedora.

Para mostrar toda la información sobre Java

alternatives --display java
iankits
fuente
1
Esto funcionó para mí, volviendo / usr / java / jdk- [versión] en Fedora
Sina Madani
3

Proceso de tres pasos: Primero: abra Terminal-> $ whereis java daría una salida como esta: java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

Segundo: ls -l /usr/bin/java daría una salida como esta: lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

Tercero: la ls -l /etc/alternatives/java salida es la ruta JDK: lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Anubhav Gupta
fuente
2

Simple, pruébalo:

Es / usr / local / java / jdk [versión]

Pantalon Ashansu
fuente
1

el comando: sudo update-alternatives --config javaencontrará la ruta completa de todas las versiones de Java instaladas

Hasan
fuente
1

Esta pregunta todavía parece relevante, y la respuesta parece ser un objetivo en movimiento.

En mi sistema debian (buster):

> update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

Sin embargo, si realmente busca allí, verá que hay varios directorios y enlaces simbólicos colocados allí por el sistema de paquetes para simplificar el mantenimiento futuro.

El directorio real es java-11-openjdk-amd64, con otro enlace simbólico de default-java. También hay un openjdk-11directorio, pero parece que solo contiene un archivo source.zip.

Dado esto, SOLO para Debian, supongo que el mejor valor para usar es /usr/lib/jvm/default-java, ya que esto siempre debería ser válido, incluso si decide instalar una versión totalmente diferente de Java, o incluso cambiar de proveedor.

La razón normal para querer conocer la ruta es porque alguna aplicación la quiere, y probablemente no desee que la aplicación se rompa porque realizó una actualización que cambió los números de versión.

Quijadhal aterrador
fuente
0

en OpenSUSE 13.1 / 13.2 its: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
el número de versión puede ser 1.7.x 1.8.x etc. verifique la versión de bruja del administrador de software que ha instalado ...

André

Gloria holandesa
fuente
0

En Linux Fedora30 están disponibles varias versiones del JDK completo de Java, específicamente los nombres de paquetes:

java-1.8.0-openjdk-devel.x86_64 
java-11-openjdk-devel.x86_64

Una vez instalados, se encuentran en: /usr/lib/jvm

Para seleccionar la ubicación / directorio de un JDK de desarrollo completo (que es diferente del JRE de tiempo de ejecución más simple) busque entradas:

ls -ld java*openjdk*

Aquí hay dos buenas opciones, que son enlaces a versiones específicas, donde tendrá que seleccionar la versión:

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk
Grant Rostig
fuente
0

Esta es la mejor manera que funcionó para mí Ejecute este comando: -

$(dirname $(readlink $(which javac)))/java_home
Manish Sharma
fuente