Où puis-je trouver le SDK Java sous Linux après l'avoir installé?

185

J'ai installé JDK en utilisant apt-get install mais je ne sais pas où se trouve mon dossier jdk. J'ai besoin de tracer la voie pour cela. Quelqu'un a-t-il une idée de l'emplacement?

dinesh707
la source
1
Distribution Linux: Debian 2.6.26
dinesh707
Essayez les /usr/local/java/distributions Oracle téléchargées d'origine.
Zon

Réponses:

385

Cela dépend un peu de votre système de paquets ... si la javacommande fonctionne, vous pouvez taper readlink -f $(which java)pour trouver l'emplacement de la commande java. Sur le système OpenSUSE sur /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/javalequel je suis maintenant, il revient (mais ce n'est pas un système qui utilise apt-get).


Sur Ubuntu, il semble que ce soit /usr/lib/jvm/java-6-openjdk/ pour OpenJDK, et dans un autre sous-répertoire de /usr/lib/jvm/pour Suns JDK (et d'autres implémentations également, je pense).

Debian est la même chose.


Pour un package donné, vous pouvez déterminer quels fichiers il installe et où il les installe en interrogeant dpkg. Par exemple pour le package 'openjdk-6-jdk':dpkg -L openjdk-6-jdk

Paŭlo Ebermann
la source
1
orth regardant dans / usr / java aussi sur certaines configurations que j'ai vues
jlb83
Si vous devez ajouter le chemin JDK dans Android Studio, ajoutez ceci / usr / lib / jvm / java-8-oracle /
Rohit Rokde
3
Il semble que mon chemin soit /usr/lib/jvm/java-7-openjdk-amd64.
einverne
2
Je pense que readlink tel que donné est le plus élégant (et efficace), mais je suggère readlink -f $(which javac) - notez le «c» au cas où il y aurait un étrange mélange de JDK et JRE sur la même machine. Le JDK comprend un compilateur (javac) et un JRE n'en contient pas. Cependant, si le chemin n'est pas correct, ce qui échouera et vous pouvez essayer ceci: find /usr/java -wholename '*ava/jdk*' -prunecomme je le note dans un commentaire ci-dessous.
Steven the Easily Amused
@Winnemucca Cela fonctionne pour moi, vous pouvez trouver où se trouve java et ensuite vous pouvez trouver où chemin jdk.
einverne
45
update-java-alternatives -l

vous dira quelle implémentation java est la mise en œuvre par défaut pour votre système et où dans le système de fichiers elle est installée. Consultez le manuel pour plus d'options.

forcefsck
la source
7
C'est spécifique à Debian (au moins). D'autres distributions peuvent ne pas avoir cela
dequis
2
@dequis, c'est une réponse spécifique à debian, depuis la question mentionnée apt-getet la distribution à être Debian 2.6.26. AFAIK, il devrait en être de même pour toutes les dérivées Debian.
forcefsck
2
Je le signale simplement à d'autres personnes. Je sais que c'est valable pour cette question particulière.
dequis
1
update-alternatives - liste | grep java a travaillé pour moi sur RHEL
Upen
30
$ which java 

devrait vous donner quelque chose comme

/usr/bin/java
Le Surrican
la source
2
vrai. Je parie que c'est après l'installation d'apt-get
The Surrican
6
Cela ne pointe pas réellement vers un JDK complet. 1. C'est un lien symbolique, et même si vous lisez le lien symbolique, le binaire n'est pas non plus dans un JDK. Par exemple, si j'exécute la commande, readlink -f $(which javac)elle s'imprime /usr/lib/jvm/java-8-oracle/bin/javac. Ce dossier bin n'est PAS un JDK. Test acido-basique général pour voir si c'est un JDK est de voir si le courant $JAVA_HOMEcontient un chemin de lib/tools.jar. Dans le casting de /usr/lib/jvm/java-8-oracle/bince n'est pas vrai, donc ce n'est pas un JDK.
Zombies
Sur Centos / RHL C'est ce que je préfère trouver le JDK (s'il est installé) find /usr/java -wholename '*ava/jdk*' -prune Mais le comportement dépend si vous parlez d'OpenJDK ou d'Oracle Java et comment il a été installé en premier lieu.
Steven the Easily Amused
12

Cette question sera déplacée mais vous pouvez faire ce qui suit

which javac

ou

cd /
find . -name 'javac'
Andrew T Finnell
la source
J'aime la deuxième option - simple et utile si vous avez plusieurs JRE / JDK et que vous voulez tous les trouver.
Amos M. Carpenter
"find / -name 'javac'" est moins typé, mais nécessite le privilège d'administrateur (root) ou vous obtiendrez beaucoup de messages de permission refusés.
Steven the Easily Amused
9

Utilisez find pour le localiser. Il devrait être /usrquelque part sous :

find /usr -name java

Lors de l'exécution de la commande, s'il y a trop de messages «Permission refusée» qui masquent les résultats réels trouvés, redirigez simplement stderr vers / dev / null

find /usr -name java 2> /dev/null
Brent Worden
la source
1
Si ce n'est pas root (admin), vous obtiendrez beaucoup de messages Permission Denied.
Steven the Easily Amused
7

Une autre meilleure façon de trouver le chemin du dossier Java est d'utiliser la alternativescommande dans Fedora Linux (je sais que c'est pour Ubuntu mais j'ai frappé ce post de google juste par son titre). Je veux juste partager des personnes comme moi à la recherche de réponses pour la saveur de fedora.

Pour afficher toutes les informations concernant java

alternatives --display java
iankits
la source
1
Cela a fonctionné pour moi, renvoyant / usr / java / jdk- [version] sur Fedora
Sina Madani
3

Processus en trois étapes: Premièrement: ouvrez le terminal-> $ whereis java cela donnerait une sortie comme celle-ci: java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

Deuxièmement: ls -l /usr/bin/java cela donnerait une sortie comme celle-ci: lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

Troisièmement: la ls -l /etc/alternatives/java sortie est le chemin 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
la source
2

Simple, essayez-le:

C'est / usr / local / java / jdk [version]

Pantalon Ashansu
la source
1

la commande: sudo update-alternatives --config javatrouvera le chemin complet de toutes les versions Java installées

Hasan
la source
1

Cette question semble toujours d'actualité, et la réponse semble être une cible mouvante.

Sur mon système Debian (buster):

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

Cependant, si vous y allez réellement, vous verrez qu'il y a plusieurs répertoires et liens symboliques placés là par le système de paquets pour simplifier la maintenance future.

Le répertoire actuel est java-11-openjdk-amd64, avec un autre lien symbolique de default-java. Il existe également un openjdk-11répertoire, mais il semble ne contenir qu'un fichier source.zip.

Compte tenu de cela, pour Debian UNIQUEMENT, je suppose que la meilleure valeur à utiliser est /usr/lib/jvm/default-java, car cela devrait toujours être valide, même si vous décidez d'installer une version totalement différente de java, ou même de changer de fournisseur.

La raison normale de vouloir connaître le chemin est que certaines applications le souhaitent et que vous ne voulez probablement pas que cette application soit interrompue parce que vous avez effectué une mise à niveau qui a changé les numéros de version.

Dread Quixadhal
la source
0

sur OpenSUSE 13.1 / 13.2 son: le /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
numéro de version peut être 1.7.x 1.8.x etc. vérifier la version du gestionnaire de logiciel que vous avez installée ...

André

Gloire hollandaise
la source
0

Sur Linux Fedora30, plusieurs versions du JDK Java complet sont disponibles, en particulier les noms de packages:

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

Une fois installés, ils se trouvent dans: /usr/lib/jvm

Pour sélectionner l'emplacement / le répertoire d'un JDK de développement complet (qui est différent du JRE d'exécution plus simple uniquement), recherchez les entrées:

ls -ld java*openjdk*

Voici deux bons choix, qui sont des liens vers des versions spécifiques, où vous devrez sélectionner la version:

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

C'est la meilleure façon qui a fonctionné pour moi Exécuter cette commande: -

$(dirname $(readlink $(which javac)))/java_home
Manish Sharma
la source