Dove posso trovare Java SDK in Linux dopo averlo installato?


185

Ho installato JDK usando apt-get install ma non so dove sia la mia cartella jdk. Devo impostare il percorso per quello. Qualcuno ha un indizio sulla posizione?


1
Distribuzione Linux: Debian 2.6.26
dinesh707

Prova /usr/local/java/per le distribuzioni Oracle scaricate originali.
Zon,

Risposte:


385

Questo dipende un po 'dal tuo sistema di pacchetti ... se il javacomando funziona, puoi digitare readlink -f $(which java)per trovare la posizione del comando java. Sul sistema OpenSUSE sono acceso ora ritorna /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(ma questo non è un sistema che utilizza apt-get).


Su Ubuntu, sembra che sia in /usr/lib/jvm/java-6-openjdk/ OpenJDK e in qualche altra sottodirectory di /usr/lib/jvm/Suns JDK (e anche altre implementazioni, penso).

Debian è la stessa.


Per ogni dato pacchetto è possibile determinare quali file installa e dove li installa interrogando dpkg. Ad esempio per il pacchetto "openjdk-6-jdk":dpkg -L openjdk-6-jdk


1
anche guardando in / usr / java su alcune configurazioni che ho visto
jlb83

Se devi aggiungere il percorso JDK in Android Studio, aggiungi questo / usr / lib / jvm / java-8-oracle /
Rohit Rokde

3
Sembra che il mio percorso sia /usr/lib/jvm/java-7-openjdk-amd64.
Einverne,

2
Penso che readlink come dato sia il più elegante (ed efficiente), ma suggerisco readlink -f $(which javac) - nota la 'c' nel caso in cui ci sia uno strano mix di JDK e JRE sulla stessa macchina. JDK include un compilatore (javac) e un JRE no. Tuttavia, se il percorso non è corretto, ciò fallirà e puoi provare questo: find /usr/java -wholename '*ava/jdk*' -prunecome noto in un commento qui sotto.
Steven the Easy Amused

@Winnemucca Funziona per me, puoi trovare dov'è java e poi puoi trovare dove jdk path.
einverne,

45
update-java-alternatives -l

ti dirà quale implementazione Java è predefinita per il tuo sistema e dove nel file system è installata. Controlla il manuale per ulteriori opzioni.


7
Questo è debian specifico (almeno). Altre distro potrebbero non avere questo
dequis

2
@dequis, è una risposta specifica a debian, poiché la domanda menzionata apt-gete la distro saranno Debian 2.6.26. AFAIK, dovrebbe essere lo stesso per tutti i derivati ​​debian.
forcefsck,

2
Lo sto solo sottolineando per altre persone. So che è valido per questa domanda particolare.
dequis,

1
update-alternatives --list | grep java ha lavorato per me su RHEL
Upen,

30
$ which java 

dovrebbe darti qualcosa di simile

/usr/bin/java

2
vero. Scommetto che è dopo apt-get install
The Surrican

6
Questo in realtà non punta a un JDK completo. 1. È un collegamento simbolico e anche se si legge il collegamento simbolico, anche il binario non si trova all'interno di un JDK. Ad esempio, se eseguo il comando readlink -f $(which javac)stampa /usr/lib/jvm/java-8-oracle/bin/javac. Quella cartella bin NON è un JDK. Test generale acido-base per vedere se è un JDK per vedere se la corrente $JAVA_HOMEcontiene un percorso di lib/tools.jar. Nel cast di /usr/lib/jvm/java-8-oracle/binquesto non è vero, quindi non è un JDK.
Zombi,

Su Centos / RHL Questo è ciò che preferisco trovare JDK (se installato) find /usr/java -wholename '*ava/jdk*' -prune Ma il comportamento dipende dal fatto che tu stia parlando di OpenJDK o Oracle Java e come sia stato installato in primo luogo.
Steven the Easy Amused

12

Questa domanda verrà spostata ma puoi fare quanto segue

which javac

o

cd /
find . -name 'javac'

Mi piace la seconda opzione: semplice e utile se hai più JRE / JDK e vuoi trovarli tutti.
Amos M. Carpenter,

"find / -name 'javac'" digita meno, ma richiede il privilegio di amministratore (root) o riceverai molti messaggi di autorizzazione negati.
Steven the Easy Amused

9

Usa trova per trovarlo. Dovrebbe essere sotto /usrda qualche parte:

find /usr -name java

Quando si esegue il comando, se ci sono troppi messaggi "Autorizzazione negata" che offusca i risultati effettivamente trovati, reindirizzare semplicemente stderr a / dev / null

find /usr -name java 2> /dev/null

1
In caso contrario, riceverai molti messaggi di autorizzazione negata.
Steven the Easy Amused

7

Un altro modo migliore per trovare il percorso della cartella Java è usare il alternativescomando in Fedora Linux (lo so per Ubuntu ma ho colpito questo post da Google solo per il titolo). Voglio solo condividere persone come me in cerca di risposte per il sapore di fedora.

Per visualizzare tutte le informazioni relative a Java

alternatives --display java

1
Questo ha funzionato per me, restituendo / usr / java / jdk- [versione] su Fedora
Sina Madani

3

Processo in tre passaggi: primo: aprire Terminale-> $ whereis java darebbe un output come questo: java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

Secondo: ls -l /usr/bin/java darebbe un output come questo: lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

Terzo: l' ls -l /etc/alternatives/java output è il percorso JDK: lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java



1

il comando: sudo update-alternatives --config javatroverà il percorso completo di tutte le versioni di Java installate


1

Questa domanda sembra ancora pertinente e la risposta sembra essere un bersaglio mobile.

Sul mio sistema debian (buster):

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

Tuttavia, se effettivamente vai lì, vedrai che ci sono più directory e collegamenti simbolici posizionati lì dal sistema del pacchetto per semplificare la manutenzione futura.

La directory attuale è java-11-openjdk-amd64, con un altro link simbolico di default-java. C'è anche una openjdk-11directory, ma sembra contenere solo un file source.zip.

Detto questo, SOLO per Debian, immagino che il miglior valore da usare sia /usr/lib/jvm/default-java, poiché questo dovrebbe essere sempre valido, anche se decidi di installare una versione totalmente diversa di java, o addirittura cambiare fornitore.

Il normale motivo per voler conoscere il percorso è perché alcune applicazioni lo desiderano e probabilmente non si desidera che l'app si interrompa perché è stato effettuato un aggiornamento che ha modificato i numeri di versione.


0

su OpenSUSE 13.1 / 13.2 è: il /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
numero di versione può essere 1.7.x 1.8.x ecc. controllare la versione della strega del software manager installata ...

André


0

Su Linux Fedora30 sono disponibili diverse versioni dell'intero java JDK, in particolare i nomi dei pacchetti:

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

Una volta installati, si trovano in: /usr/lib/jvm

Per selezionare la posizione / directory di un JDK di sviluppo completo (che è diverso dal JRE di runtime più semplice) cercare le voci:

ls -ld java*openjdk*

Ecco due buone scelte, che sono collegamenti a versioni specifiche, in cui dovrai selezionare la versione:

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk

0

Questo è il modo migliore che ha funzionato per me Eseguire questo comando: -

$(dirname $(readlink $(which javac)))/java_home
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.