¿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?
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).
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
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.
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
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
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
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.
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
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.
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 ...
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/local/java/
distribuciones originales descargadas de Oracle.Respuestas:
Esto depende un poco de su sistema de paquetes ... si el
java
comando funciona, puede escribirreadlink -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 usaapt-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
fuente
/usr/lib/jvm/java-7-openjdk-amd64
.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*' -prune
como noto en un comentario a continuación.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.
fuente
apt-get
y la distribución sonDebian 2.6.26
. AFAIK, debería ser el mismo para todos los derivados de Debian.debería darte algo como
fuente
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_HOME
contiene una ruta delib/tools.jar
. En el reparto de/usr/lib/jvm/java-8-oracle/bin
eso no es cierto, por lo tanto, no es un JDK.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.Esta pregunta se moverá pero puede hacer lo siguiente
o
fuente
Use buscar para ubicarlo. Debería estar debajo de
/usr
alguna parte:Al ejecutar el comando, si hay demasiados mensajes de "Permiso denegado" que ofuscan los resultados reales encontrados, simplemente redirija stderr a / dev / null
fuente
Otra mejor manera de encontrar la ruta de la carpeta Java es usar el
alternatives
comando 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
fuente
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
fuente
Simple, pruébalo:
Es / usr / local / java / jdk [versión]
fuente
el comando:
sudo update-alternatives --config java
encontrará la ruta completa de todas las versiones de Java instaladasfuente
Esta pregunta todavía parece relevante, y la respuesta parece ser un objetivo en movimiento.
En mi sistema debian (buster):
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 dedefault-java
. También hay unopenjdk-11
directorio, 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.
fuente
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é
fuente
En Linux Fedora30 están disponibles varias versiones del JDK completo de Java, específicamente los nombres de paquetes:
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:
Aquí hay dos buenas opciones, que son enlaces a versiones específicas, donde tendrá que seleccionar la versión:
fuente
Esta es la mejor manera que funcionó para mí Ejecute este comando: -
fuente