Sollte JAVA_HOME auf JDK oder JRE verweisen?

102

Ich zeigte JAVA_HOMEauf C:\Program Files (x86)\Java\jre7. Es funktioniert gut. Danach habe ich ant entpackt und die Umgebungsvariablen für Ant eingerichtet. Nach der Eingabe wurden die folgenden Fehlermeldungen angezeigt"ant -version"

Bild

Ich habe dieses Forum durchsucht. Eine Lösung besteht darin, Java anstelle von JRE auf JDK zu verweisen. Ich bin mir nicht ganz sicher, ob dies die Lösung sein sollte. Mit anderen Worten, auf welches sollte JAVA_HOME im Allgemeinen verweisen? JDK oder JRE?

user297850
quelle

Antworten:

121

Wenn Sie irgendeine Art von Entwicklung durchführen oder mit Maven oder Ant bauen, müssen Sie auf das JDK (Java Development Kit) verweisen, in dem sich Dienstprogramme wie javac(der Java Compiler) befinden. Andernfalls können Sie auf die JRE (Java Runtime Environment) verweisen.

Das JDK enthält alles, was die JRE hat und mehr. Wenn Sie nur Java-Programme ausführen, können Sie entweder auf die JRE oder das JDK verweisen.

David W.
quelle
7
Es JAVA_HOMEwird also verwendet, um zwei Dinge zu tun: 1: für Entwicklungswerkzeuge, Finden javac.exe. 2: für Nichtentwicklungswerkzeuge finden java.exe. Dies scheint "ein Werkzeug für eine Sache" zu verletzen . Sollte nicht JDK_HOMEstattdessen verwendet werden?
Pacerier
4
Das Diagramm auf dieser Site zeigt die Beziehung zwischen JDK und JRE. docs.oracle.com/javase/8/docs
andrybak
1
Ist es möglich, programmatisch zu überprüfen, ob der Java-Pfad als JRE oder JDK festgelegt ist?
Dinesh Kumar P
9

Einfach (ändern Sie zu Ihrem jdk1.xxx_xx)

JAVA_HOME = C: \ Programme \ Java \ jdk1.8.0_05

Amr Lotfy
quelle
6

Mein JAVA_HOME zeigt auf das JDK. Wenn es immer noch nicht funktioniert, überprüfen Sie, ob Sie ant für Java 7 und nicht für Java 6 heruntergeladen haben.

das_j
quelle
5

Im Allgemeinen spielt es keine Rolle, ob Sie auf JRE oder JDK zeigen. Dies hängt von der Anwendung ab, die es verwendet. In der Ant-Dokumentation heißt es, Sie sollten auf JDK verweisen, um alle Funktionen von Ant zu erhalten.

Jan Martiška
quelle
2

Als Entwickler sollten Sie Ihr JAVA_HOME auf jdk richten, um auf javac copiler usw. zuzugreifen. Es ist jedoch gut, wenn Sie Ihr Programm testen können, um es auf der JRE auszuführen. Wenn Sie einen App-Server verwenden, benötigen Sie häufig auch das JDK anstelle der JRE. Dies hängt jedoch vom jeweiligen Server ab.

akostadinov
quelle
2

Sie können entweder das JDK oder das JRE verwenden, aber:

JAVA_HOME wird vom Launcher verwendet, um das zu verwendende JDK / JRE zu finden. (JDK wird empfohlen, da für einige Aufgaben die Java-Tools erforderlich sind.)
. ANT_HOME Einstellung

Michaelok
quelle
0

Lassen Sie es uns einfach halten. Gehen Sie zu Einstellungen und suchen Sie nach "Umgebungsvariablen". Sobald das Fenster mit den Umgebungsvariablen angezeigt wird, erstellen Sie einfach eine neue SYSTEM-Variable, indem Sie auf NEU und dann auf VERZEICHNIS DURCHSUCHEN klicken, bis Sie den Installationspfad des JDK gefunden haben. Das JDK sollte in Programmdateien installiert sein und Sie sehen einen JAVA-Ordner und im Ordner befinden sich JDK und JRE ... Wenn Sie Code schreiben, müssen Sie JDK auswählen !!! Hören Sie niemandem zu, der angibt, dass JRE ausreicht ... NEIN! Es wird nicht! Das richtige Verzeichnis sollte so aussehen : C: \ Programme \ Java \ jdk1.8.0_144 so einfach ist das!

nexogen.io
quelle
2
@Stephan Die vorhandenen Antworten enthalten bereits die Informationen, für deren Bereitstellung ich mir die Zeit genommen habe. Das ist Ihre Rechtfertigung für ein Downvoting? Dies ist das Problem bei vielen dieser Threads. Nur weil das Grundprinzip beantwortet wurde, heißt das nicht, dass die Antwort gut formuliert oder sogar hilfreich war. Meine Antwort ist überhaupt nicht die gleiche wie die vorherigen Antworten. Die Antwort, die ich gab, kam mit genauen Anweisungen
nexogen.io