JAVA_HOME doit-il pointer vers JDK ou JRE?

102

J'ai pointé le JAVA_HOMEvers C:\Program Files (x86)\Java\jre7. Ça fonctionne bien. Ensuite, j'ai décompressé ant et configuré les variables d'environnement liées à Ant, j'ai reçu les messages d'erreur suivants après avoir tapé"ant -version"

image

J'ai cherché dans ce forum. Il semble qu'une solution consiste à pointer Java vers JDK au lieu de JRE. Je ne sais pas exactement si cela devrait être la solution. En d'autres termes, en général, vers lequel doit pointer JAVA_HOME? JDK ou JRE?

utilisateur297850
la source

Réponses:

121

Si vous faites une sorte de développement, ou que vous construisez avec Maven ou Ant, vous devez pointer vers le JDK (Java Development Kit) où javacrésident des utilitaires tels que (le compilateur Java). Sinon, vous pouvez pointer vers le JRE (Java Runtime Environment).

Le JDK contient tout ce que le JRE a et plus encore. Si vous exécutez simplement des programmes Java, vous pouvez pointer vers le JRE ou le JDK.

David W.
la source
7
On a donc l' JAVA_HOMEhabitude de faire deux choses: 1: pour les outils de développement, trouver javac.exe. 2: pour les outils de non développement, trouver java.exe. Cela semble violer "un outil pour une chose" . Ne devrait pas JDK_HOMEêtre utilisé à la place?
Pacerier le
4
Le diagramme sur ce site montre la relation entre JDK et JRE. docs.oracle.com/javase/8/docs
andrybak
1
Est-il possible de valider par programme si le chemin Java est défini sur JRE ou JDK?
Dinesh Kumar P
9

Simplement (changez pour votre jdk1.xxx_xx)

JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_05

Amr Lotfy
la source
6

Mon JAVA_HOME pointe vers le JDK. Si cela ne fonctionne toujours pas, vérifiez si vous avez téléchargé ant pour Java 7 et non pour Java 6.

das_j
la source
5

En général, peu importe que vous le dirigiez vers JRE ou JDK. Cela dépend de l'application qui l'utilise. Ant documentation indique que vous devez pointer à obtenir les JDK toutes les fonctionnalités d'Ant.

Jan Martiška
la source
2

en tant que développeur, vous devez pointer votre JAVA_HOME vers jdk pour accéder au copilateur javac, etc. C'est bien si vous pouvez tester votre programme pour qu'il s'exécute sur le JRE. Si vous utilisez un serveur d'applications, vous avez souvent également besoin du JDK au lieu du JRE, mais cela dépend du serveur particulier.

Akostadinov
la source
2

Vous pouvez utiliser le JDK ou le JRE mais:

JAVA_HOME est utilisé par le lanceur pour trouver le JDK / JRE à utiliser. (JDK est recommandé car certaines tâches nécessitent les outils java.)
. Paramètre ANT_HOME

Michaelok
la source
0

Gardons les choses simples. Allez dans les paramètres et recherchez "Variables d'environnement". Une fois que la fenêtre des variables d'environnement apparaît, créez simplement une nouvelle variable SYSTEM en cliquant sur NOUVEAU, puis PARCOURIR LE RÉPERTOIRE jusqu'à ce que vous localisiez le chemin d'installation du JDK. Le JDK doit être installé dans les fichiers programme et vous verrez un dossier JAVA et à l'intérieur du dossier se trouvent JDK et JRE ... Si vous écrivez du code, vous devez sélectionner JDK !!! N'écoutez personne dire que JRE suffira ... NON! Ça ne sera pas! Le bon répertoire devrait ressembler à ceci C: \ Program Files \ Java \ jdk1.8.0_144 c'est aussi simple que ça!

nexogen.io
la source
2
@Stephan Les réponses existantes fournissent déjà les informations que j'ai pris le temps de fournir. C'est votre justification du vote négatif? C'est le problème avec plusieurs de ces fils. D'une part, ce n'est pas parce que le principe de base a été répondu que la réponse était bien formulée ou même utile. Ma réponse n'est pas du tout la même que les réponses précédentes. La réponse que j'ai fournie, est venue avec des instructions précises
nexogen.io