it-swarm.com.de

Wie stelle ich die Java-Standardinstallation/-Laufzeit (Windows) ein?

Ich befinde mich in einer Situation, in der ich das JDK installiert habe, aber ich kann keine Applets in Browsern ausführen (ich habe das JRE möglicherweise nicht installiert).

Bei der Installation der JRE wird jedoch das JDK als Standardlaufzeit verwendet. Dadurch wird so ziemlich alles gebrochen (Eclipse, Ant) - da hierfür eine Server-JVM erforderlich ist.

Heutzutage gibt es keine Java_HOME-Umgebungsvariable - es scheint nur etwas Registry-Magie zu verwenden (die Einstellung des Systempfads ist auch nicht sinnvoll). Bisher habe ich die JRE gerade deinstalliert, nachdem ich sie zum Wiederherstellen des JDK verwendet habe. Diesmal möchte ich es richtig reparieren.

Dies zeigt sich auch beim jre autoupdater - einst hatte ich ein funktionierendes Setup mit dem JDK und der JRE, aber es wurde aktualisiert und alles kaputt gemacht.

44
Stephen

Das ist ein bisschen mühsam für Windows. Hier ist was ich tue.

Installieren Sie das neueste Sun JDK, z. 6u11, in einem Pfad wie c:\install\jdk\Sun\6u11, und lassen Sie das Installationsprogramm das öffentliche JRE an der Standardposition installieren (c:\program files\blah). Dadurch wird Ihre Standard-JRE für die meisten Dinge eingerichtet.

Installieren Sie ältere JDKs nach Bedarf, z. B. 5u18 in c:\install\jdk\Sun\5u18, aber installieren Sie die öffentlichen JREs nicht.

Während der Entwicklung habe ich eine kleine Batch-Datei, mit der ich für jede JDK-Version eine Eingabeaufforderung einrichte. Stellen Sie einfach Java_HOME=c:\jdk\Sun\JDK_DESIRED und dann PATH=%Java_HOME%\bin;%PATH% ein. Dadurch wird das gewünschte JDK an die erste Stelle im Pfad gesetzt, und sekundäre Tools wie Ant oder Maven können die Variable Java_HOME verwenden.

Der Pfad ist wichtig, da bei den meisten öffentlichen JRE-Installationen eine verknüpfte ausführbare Datei unter c:\WINDOWS\System32\Java.exe abgelegt wird, die normalerweise die meisten anderen Einstellungen überschreibt .

40
nbeyer

Ich habe das Verhalten meiner Eclipse-Startverknüpfung im Eigenschaftendialogfeld gepatcht

von 

"E:\Program Files\Eclipse\eclipse.exe"

zu

"E:\Program Files\Eclipse\eclipse.exe" -vm "E:\Program Files\Java\jdk1.6.0_30\bin"

wie beschrieben in der Eclipse-Dokumentation

Es ist nur ein Patch, da es von der Verknüpfung abhängt, um Dinge zu beheben ...

Die Alternative besteht darin, den Parameter dauerhaft in der Eclipse-Initialisierungsdatei festzulegen.

6
Jörn Guy Süß

Ich hatte gerade dieses Problem (Java 1.8 vs. Java 9 unter Windows 7) und meine Ergebnisse sind:

kurze Version

standard scheint zu sein (wegen Pfadeintrag)

c:\ProgramData\Oracle\Java\javapath\Java -version

wählen Sie die gewünschte Version aus (testen, Tab in cmd ausfüllen, nicht sicher, was diese Zahlen bedeuten). Ich hatte 2 Optionen. Weitere Informationen finden Sie in der längeren Version

c:\ProgramData\Oracle\Java\javapath_target_[tab]

entfernen Sie Junction/Link und verknüpfen Sie mit Ihrer Version (die, die in meinem Fall für Java 8 mit 181743567 endet).

rmdir javapath
mklink /D javapath javapath_target_181743567

längere Version:

Installieren Sie Java 1.8 neu, nachdem Java 9 nicht funktioniert hat. Die Installationsreihenfolge war jdk1.8.0_74, jdk-9.0.4 und es wurde versucht, Java 8 mit jdk1.8.0_162 als Standard festzulegen.

Nach der Installation von jdk1.8.0_162 habe ich immer noch

Java -version
Java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

Was ich im Pfad sehe, ist

Path=...;C:\ProgramData\Oracle\Java\javapath;...

Also habe ich nachgesehen, was das ist und ich fand, dass es eine Kreuzung ist (Link)

c:\ProgramData\Oracle\Java>dir
 Volume in drive C is OSDisk
 Volume Serial Number is DA2F-C2CC

 Directory of c:\ProgramData\Oracle\Java

2018-02-07  17:06    <DIR>          .
2018-02-07  17:06    <DIR>          ..
2018-02-08  17:08    <DIR>          .Oracle_jre_usage
2017-08-22  11:04    <DIR>          installcache
2018-02-08  17:08    <DIR>          installcache_x64
2018-02-07  17:06    <JUNCTION>     javapath [C:\ProgramData\Oracle\Java\javapath_target_185258831]
2018-02-07  17:06    <DIR>          javapath_target_181743567
2018-02-07  17:06    <DIR>          javapath_target_185258831

Die Hashes klingeln nicht, aber als ich nachgesehen habe

c:\ProgramData\Oracle\Java\javapath_target_181743567>.\Java -version
Java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

c:\ProgramData\Oracle\Java\javapath_target_185258831>.\Java -version
Java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

um Java 8 wieder als Standard festzulegen, musste ich den Link wie beschrieben löschen. hier

rmdir javapath

und mit Java neu erstellen, wollte ich

mklink /D javapath javapath_target_181743567

geprüft:

c:\ProgramData\Oracle\Java>Java -version
Java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

** Update (Java 10) **

Mit Java 10 ist es ähnlich, nur javapath befindet sich in c:\Programme (x86)\Gemeinsame Dateien\Oracle\Java \. Dies ist merkwürdig, da ich 64-Bit-IMHO installiert habe

.\Java -version
Java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
2
Betlista

Ich installiere einfach alle Versionen von JDK, die ich brauche, und die zuletzt installierte Version wird zur Standardeinstellung. Daher installiere ich einfach diejenige, die ich als Standardeinstellung verwenden möchte.

1
John Mikic

Nach vielen Versuchen fand ich den Kreuzungsansatz praktischer. Dies ist sehr ähnlich, wie dieses Problem in Linux gelöst wird.

Grundsätzlich besteht es aus einem Link zwischen c:\tools\Java\default und der aktuellen Java-Version, die Sie als Standard in Ihrem System verwenden möchten.


Wie man es einstellt:

  1. Laden Sie Junction herunter und stellen Sie sicher, dass Sie diese in Ihre Umgebungsvariable PATH Einfügen
  2. Stellen Sie Ihre Umgebung folgendermaßen ein: - PATH zeigt auf NUR auf diesen Code c:\tools\Java\default\bin - Java_HOME verweist auf `c:\tools\Java\default
  3. Speichern Sie alle Ihre Jre-s in einem Ordner wie (wenn Sie dies in Ihrem Program FIles-Ordner tun, können Sie auf einige .__ stoßen.
    • C:\tools\Java\JRE_1.6
    • C:\tools\Java\JRE_1.7
    • C:\tools\Java\JRE_1.8
  4. Öffnen Sie eine Eingabeaufforderung und eine CD mit C:\tools\Java\
  5. junction default JRE_1.6 ausführen

Dadurch wird eine Junction (die mehr oder weniger einer symbolischen Verbindung in Linux entspricht) zwischen C:\tools\Java\default und C:\tools\Java\JRE_1.6 erstellt.

Auf diese Weise haben Sie immer Ihr Standard-Java in c:\tools\Java\default

Wenn Sie dann Ihr Standard-Java auf die Version 1.8 ändern müssen, müssen Sie es nur ausführen

junction -d default
junction default JRE_1.8 

Dann können Sie Batch-Dateien haben, um dies ohne Eingabeaufforderung wie set_jdk8.batset_jdk7.bat zu tun.

Wie von @ СӏаџԁеМаятіи vorgeschlagen

BEARBEITEN: Unter Windows Vista können Sie mklink /J default JRE_1.8 verwenden.

0
snovelli

Ich habe mehrere JDK (1.4, 1.5, 1.6) in C:\Java mit ihren JREs installiert. Dann lasse ich Sun die öffentliche JRE in C:\Program Files\Java aktualisieren.
In letzter Zeit gibt es eine Verbesserung, die Installation in jre6. Bisher gab es für jede neue Version einen anderen Ordner (1.5.0_4, 1.5.0_5 usw.), der viel Platz beanspruchte

0
PhiLho

eine veränderbare Methode zum Ausführen einer .jar-Anwendung ist das Erstellen eines .bat-cmd für sie Sie haben beispielsweise jre10 und jre8 auf Ihrem PC installiert, und jre10 ist Ihr Standard-Jre. __ mit jre8 arbeiten, wird folgendes cmd funktionieren:

"C:\Program Files\Java\jre1.8.0_181\bin\Java.exe" -jar JabRef-4.3.1.jar
0
ndtc