Ich habe gerade ein Upgrade von Java Version 8 auf Version 12 durchgeführt. Das Betriebssystem ist Windows 7 Home.
Da Oracle kein separates JRE mehr bereitstellt, muss ich beim Ausführen eines Programms den Ordnernamen für die ausführbare Java-Datei angeben. Um das Ändern des Ordners bei einer Java-Aktualisierung zu vereinfachen, habe ich eine Verknüpfung in einen meiner Ordner eingefügt und diese zu meinem PATH hinzugefügt. Aber das funktioniert nicht. Hier ist eine leicht bearbeitete Befehlszeilensitzung.
Überprüfen Sie zunächst, ob die Abzweigung und der Weg in Ordnung sind:
D:\Peter\PC>dir jre*
27/09/2019 15:11 <JUNCTION> JREDir [C:\Program Files\Javajdk-12.0.1\bin]
D:\Peter\PC>dir jredir\java*
Volume in drive D is DATA
Volume Serial Number is CE44-C814
Directory of D:\Peter\PC\jredir
27/09/2019 11:36 148,328 java.dll
27/09/2019 11:36 51,048 java.exe
27/09/2019 11:36 226,664 javaaccessbridge.dll
27/09/2019 11:36 20,840 javac.exe
27/09/2019 11:36 20,840 javadoc.exe
27/09/2019 11:36 174,952 javajpeg.dll
27/09/2019 11:36 20,840 javap.exe
27/09/2019 11:36 51,048 javaw.exe
8 File(s) 714,560 bytes
0 Dir(s) 149,081,808,896 bytes free
C:\>path
PATH=C:\Program Files (x86)...ls\Binn\;D:\Peter\PC\JREDir
Versuchen Sie nun, Java mit dem Junction-Namen auszuführen
D:\Peter\PC>jredir\java -version
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
Dies scheint die ausführbare Java-Datei zu finden, erfordert aber einen Registrierungsschlüssel. Ein Wechsel per CD in das Verzeichnis der ausführbaren Datei funktioniert jedoch einwandfrei!
C:\Program Files\Java\jdk-12.0.1\bin>java -version
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
ebenso wie das Ausführen mit einem expliziten Verzeichnisnamen:
D:\Peter\PC>"C:\Program Files\Java\jdk-12.0.1\bin"\java -version
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
Das Ausführen über den Pfad funktioniert jedoch nicht.
C:\>java -version
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
Ich habe also zwei Fragen:
- Warum funktioniert die Verbindung nicht? Ich habe es mit einem symbolischen Link versucht, aber das hat auch nicht funktioniert.
- Was muss in der Registrierung stehen, damit es funktioniert?
Antwort1
Ich weiß, dass es eine alte Frage ist, aber ich teile sie zum späteren Nachschlagen.
Im Beispiel ist die Verbindung eine Ebene zu tief. Das sollte sie nicht sein, C:\Program Files\Javajdk-12.0.1\bin
sondernC:\Program Files\Javajdk-12.0.1