Wie kann ich Windows davon überzeugen, das JDK anstelle einer JRE zu verwenden?
Diese Frage wurde schon einmal hier und anderswo gestellt:
Wie lege ich die Standard-Java-Installation / Laufzeit (Windows) fest?
Das Problem ist, dass Windows ignoriert JAVA_HOME
und auch die Tatsache ignoriert, dass ich das JDK-Bin-Verzeichnis zum ersten Eintrag im Pfad gemacht habe.
Wenn ich java -version
über die Befehlszeile ausgeführt werde, wird anstelle der JDK 1.6-Installation die JRE 1.7 ausgeführt.
Ich vermute, dass dies ein spezifisches Problem für 1.7 ist und Windows 7 etwas tut, was es mit der Registrierung nicht tun sollte.
Irgendwelche Ideen, wie man das behebt?
Bearbeiten : Ups. Ich habe oben "erster Eintrag im Klassenpfad" geschrieben, als ich "Pfad" meinte. Es tut uns leid.
%JAVA_HOME%\bin
erste Position derpath
Variablen ein und arbeite für mich.In Windows 8 möchten Sie möglicherweise das
C:\ProgramData\Oracle\Java\javapath
Verzeichnis entfernen .vom Weg
Es hat mein Problem gelöst.
quelle
Ich habe auch dieses Problem. Ich verwende 1.6, möchte aber den Code erstellen, an dem ich mit 1.5 arbeite. Ich habe das
JAVA_HOME
undPATH
(sowohl Benutzer als auch System) ohne Erfolg geändert .Die Antwort ist , dass der Installer für 1,6 gesunken
java.exe
,javaw.exe
undjavaws.exe
in meinenWindows\System32
Ordner (Windows 7).Ich löste es durch diese Dateien umbenennen
java_wrong.exe
,javaw_wrong.exe
undjavaws_wrong.exe
. Erst danach wird die richtige Version von Java wie inJAVA_HOME
und definiertPATH
. Ich habe die Dateien so umbenannt, weil sie dadurch leicht umkehrbar gelöscht wurden.Hoffe das hilft!
quelle
Windows ignoriert nichts. Dies ist ein Problem mit Ihrem Setup. Windows verwendet nur das, was Sie bereitstellen. Es hat keine besonderen Kenntnisse von
JAVA_HOME
.CLASSPATH
hat auch nichts mit Windows zu tun. Für Windows ist es nur eine Umgebungsvariable, die zu einem Ordner erweitert wird.Überprüfen Sie Ihre
%PATH%
Umgebungsvariable. Es ist das, was Windows dazu bringt, eins vor dem anderen zu finden. Der Pfad (wie der Beitrag, auf den Sie verlinkt haben) sollte zeigen%JAVA_HOME%\bin;<remainder of path>
. Der Beitrag, auf den Sie verlinkt haben, gab Ihnen erneut die Möglichkeit, dies mithilfe einer Batchdatei festzulegen.(Für andere, die dies möglicherweise nicht wissen: Der einfachste Weg,% PATH% zu überprüfen, besteht darin, eine Eingabeaufforderung zu öffnen und einzugeben
echo %PATH%
. Sie können auch dorthin gelangen, indem SieComputer
im rechten Bereich des Startmenüs mit der rechten Maustaste darauf klicken undProperties
dann Folgendes auswählenAdvanced System Settings
: und dieEnvironmental Variables
Taste.)quelle
JAVA_HOME
als Windows.JAVA_HOME
sollte auf das Stammverzeichnis der Java-Installation gesetzt werden. Der Pfad sollte haben%JAVA_HOME%\bin;<remainder of path%gt;
, sonst werden Sie Java, Java usw. nicht "finden". Natürlich betrachtet Windows diePATH
Variable nur wirklich , aber einige Java-bezogene Tools sehen sichJAVA_HOME
gelegentlich an.\bin
. Vielen Dank.Ich hatte das gleiche Problem. Ich habe eine Reihe von Java-Versionen installiert und aus irgendeinem Grund wurde Java 1.7 anstelle von Java 1.6 verwendet, obwohl ich im Pfad zur Verwendung von 1.6 angegeben habe (C: \ jdk1.6.0_45_32 \ bin).
Ich musste den Pfad des JDK, das ich verwenden wollte (1.6), verschieben, um der erste Eintrag in der Umgebungsvariablen PATH zu sein, um sicherzustellen, dass Windows 1.6 anstelle von 1.7 verwendet.
So war beispielsweise die Umgebungsvariable PATH zuvor:
und nachdem ich das jdk als erstes verschoben hatte, funktionierte es:
Ich denke, das Windows-Installationsprogramm von Java 1.7 hat es in einem anderen Verzeichnis installiert, das sich bereits im PATH befindet, und wird daher zuerst anstelle des angegebenen benutzerdefinierten PATH-Eintrags C: \ jdk1.6.0_45_32 \ bin verwendet.
quelle
Für meinen Fall in
'Path'
Variable wurde ein Parameter wie 'C:\ProgramData\Oracle\Java\javapath;
' hinzugefügt . Dieser Ort wurde mitjava.exe
,javaw.exe
undjavaws.exe
von Java - 8 , die über neu installiertjdk.exe
von Oracle.Ich habe diesen Text aus dem Pfad entfernt, in dem mein Pfad bereits vorhanden ist
%JAVA_HOME%\bin
ist.Jetzt
'JAVA_HOME'
steuert die Variable meine Java-Version, die ich wollte.quelle
Angenommen, Sie haben JDK 10 nach JDK 8 installiert und in der Systemumgebungsvariablen den Pfad wie "C: \ ProgramData \ Oracle \ Java \ javapath" und dann die Java-Versionskontrolle über diesen Pfad festgelegt. JAVA_HOME wird ignoriert, selbst der hier festgelegte jdk 1.8-Pfad. Entfernen Sie daher "C: \ ProgramData \ Oracle \ Java \ javapath" im Pfad, um die Wirkung des JAVA_HOME-Pfads zu erhalten
quelle
Ich hatte Java 7 und 8 installiert und möchte zu Java 7 umleiten, aber die Java-Version in meinem cmd-Eingabeaufforderungsfenster zeigt Java 8.
Java 7 bin-Verzeichnispfad hinzugefügt ( C: \ Programme \ Java \ jdk1.7.0_10 \ bin ) zu PATH Variable am Ende, aber nicht funktioniert und zeigt Java 8. Also habe ich den Java 7-Pfad an den Anfang des Pfadwerts geändert und es hat funktioniert.
Öffnete ein neues cmd-Eingabeaufforderungsfenster und überprüfte meine Java-Version. Jetzt wird Java 7 angezeigt
quelle
Setzen Sie die Umgebungsvariable Path auf das gewünschte Verzeichnis jdk / bin
quelle
In meinem Fall hatte ich Java 7 und 8 (beide x64) installiert und möchte zu Java 7 umleiten, aber alles ist auf Java 8 eingestellt. Java verwendet die Umgebungsvariable PATH:
als erste Option, um nach der Laufzeit des Ordners zu suchen (ist ein versteckter Ordner). Dieser Pfad enthält 3 Symlinks, die nicht bearbeitet werden können.
In meinem PC sieht die Umgebungsvariable PATH folgendermaßen aus:
In meinem Fall sollte es so aussehen:
Ich musste die Symlinks ausschneiden und an einer anderen Stelle einfügen, damit Java sie nicht finden kann und ich sie später wiederherstellen kann.
Nachdem Sie die Umgebungsvariablen JAVA_HOME und JRE_HOME auf die gewünschten Laufzeiten der Java-Ordner eingestellt haben (in meinem Fall Java 7), wird der Befehl ausgeführt
java -version
die gewünschte Java-Laufzeit anzeigen. Ich stelle fest, dass es nicht nötig ist, sich mit der Registrierung anzulegen.Getestet auf Win7 x64.
quelle
Dieses Problem ist wahrscheinlich auf frühere Versionen von Java zurückzuführen, die auf Ihrem System installiert sind. Überprüfen Sie zuerst Ihre Umgebungsvariablen sorgfältig und entfernen Sie alle Umgebungsvariablen, die sich auf frühere Versionen von JAVA beziehen, und ersetzen Sie diese Pfade zu
quelle
Hier gibt es einen zusätzlichen Faktor; Zusätzlich zu den Java-ausführbaren Dateien, die in der Java-Installation an einer beliebigen Stelle abgelegt werden, legt das Java-Installationsprogramm unter Windows auch Kopien einiger dieser ausführbaren Dateien in Ihrem Windows-System32-Verzeichnis ab, sodass Sie wahrscheinlich diejenige verwenden, die jede ausführbare Java-Datei war zuletzt installiert.
quelle
Nur für den Fall, dass Sie die .BAT-Datei als Windows-Dienst verwenden, würde ich empfehlen, den Windows-Dienst zu deinstallieren und erneut zu installieren, nachdem Sie% JAVA_HOME% geändert haben, um auf die richtige Java-Version zu verweisen.
quelle
Nachdem ich einige Zeit mit diesem Problem zu kämpfen hatte und darüber recherchiert hatte, gelang es mir schließlich, es mit den folgenden Schritten zu lösen:
1) Installieren Sie die JDK-Version 12
2) Erstellen Sie eine neue Variable in der
Systemvariablen. 3) Benennen Sie sie als JAVA_HOME und geben Sie den JDK-Installationspfad an.
4) Fügen Sie diese Variable im Pfad hinzu und verschieben Sie sie nach oben.
5) Gehen Sie zu C: \ Programme (86) \ Gemeinsame Dateien \ Oracle \ Java \ javapath und ersetzen Sie java.exe und javaw.exe durch die entsprechenden Dateien mit demselben Namen aus dem Ordner pathtojavajdk / bin
Schließlich habe ich die Standardversion von Java in cmd mit "java -version" überprüft und es hat funktioniert!
quelle