Jak przekonać system Windows do używania JDK zamiast JRE?
To pytanie zadawano już wcześniej, tutaj i gdzie indziej:
Jak ustawić domyślną instalację / środowisko wykonawcze Java (Windows)?
Problem polega na tym, że system Windows ignoruje, JAVA_HOME
a także ignoruje fakt, że jako pierwszy wpis w ścieżce ustawiłem katalog bin JDK.
Kiedy uruchamiam java -version
z wiersza poleceń, zamiast wywoływać moją instalację JDK 1.6, uruchamia on JRE 1.7.
Domyślam się, że jest to problem specyficzny dla wersji 1.7, a Windows 7 robi coś, czego nie powinien robić z rejestrem.
Jakieś pomysły, jak to naprawić?
Edycja : Ups. Napisałem „pierwszy wpis w ścieżce klas” powyżej, kiedy miałem na myśli „ścieżkę”. Przepraszam.
%JAVA_HOME%\bin
pierwszą pozycjępath
zmiennej na Windows 10 i pracuję do mnie.W systemie Windows 8 możesz chcieć usunąć
C:\ProgramData\Oracle\Java\javapath
katalog.od ścieżki
To rozwiązało mój problem.
źródło
Ja też mam ten problem. Używam wersji 1.6, ale chcę zbudować kod, nad którym pracuję, z wersją 1.5. Zmieniłem
JAVA_HOME
iPATH
(zarówno użytkownika, jak i system) bezskutecznie.Odpowiedź jest, że instalator dla 1,6 spadła
java.exe
,javaw.exe
ijavaws.exe
do mojegoWindows\System32
folderu (Windows 7).Rozwiązałem to przez zmianę nazwy tych plików
java_wrong.exe
,javaw_wrong.exe
orazjavaws_wrong.exe
. Dopiero po wykonaniu tej czynności pobiera poprawną wersję Java, zgodnie z definicją wJAVA_HOME
iPATH
. W ten sposób zmieniłem nazwy plików, ponieważ w ten sposób zostały usunięte w łatwo odwracalny sposób.Mam nadzieję że to pomoże!
źródło
Windows niczego nie ignoruje. To jest problem z twoją konfiguracją; Windows używa tylko tego, co podałeś. Nie ma specjalnej wiedzy o
JAVA_HOME
.CLASSPATH
nie ma też nic wspólnego z systemem Windows. W systemie Windows jest to tylko zmienna środowiskowa, która jest rozwijana do lokalizacji folderu.Sprawdź
%PATH%
zmienną środowiskową. To właśnie sprawia, że system Windows znajduje jeden przed drugim. Ścieżka (zgodnie z postem, do którego utworzyłeś łącze) powinna wskazywać%JAVA_HOME%\bin;<remainder of path>
. Ponownie post, do którego utworzyłeś łącze, umożliwił ustawienie tego za pomocą pliku wsadowego.(Dla innych, którzy mogą nie wiedzieć, to: Najłatwiej sprawdzić% PATH% jest otworzyć wiersz polecenia i typ
echo %PATH%
. Można również dostać się tam przez kliknięcie prawym przyciskiem myszyComputer
w prawym panelu menu Start i wyborzeProperties
, a następnieAdvanced System Settings
, iEnvironmental Variables
przycisk tne .)źródło
JAVA_HOME
niż Windows.JAVA_HOME
powinien być ustawiony na katalog główny instalacji Java. Ścieżka powinna mieć%JAVA_HOME%\bin;<remainder of path%gt;
, w przeciwnym razie nie będzie można "znaleźć" java, javac itp. Oczywiście Windows tak naprawdę patrzy tylko naPATH
zmienną, ale niektóre narzędzia związane z Javą sprawdzająJAVA_HOME
czasami.\bin
. Dzięki.Miałem ten sam problem. Mam zainstalowanych kilka wersji Javy iz jakiegoś powodu używano Javy 1.7 zamiast Javy 1.6, mimo że podałem w ścieżce do użycia 1.6 (C: \ jdk1.6.0_45_32 \ bin).
Musiałem przesunąć ścieżkę JDK, którego chciałem użyć (1.6), aby była pierwszym wpisem w zmiennej środowiskowej PATH, aby upewnić się, że system Windows używa wersji 1.6 zamiast 1.7.
Na przykład zmienna środowiskowa PATH była wcześniej:
C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin;C:\jdk1.6.0_45_32\bin
i po tym, jak przeniosłem jdk na pierwszy, zadziałało:
C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin
Domyślam się, że instalator Javy 1.7 dla systemu Windows zainstalował ją w jakimś innym katalogu już w PATH, w ten sposób wykorzystując go jako pierwszy zamiast określonego niestandardowego wpisu PATH C: \ jdk1.6.0_45_32 \ bin;
źródło
Dla mojej
'Path'
zmiennej Case w zmiennej został dodany parametr taki jak „C:\ProgramData\Oracle\Java\javapath;
”. Ta lokalizacja miałajava.exe
,javaw.exe
ijavaws.exe
java 8, która jest nowo instalowana przezjdk.exe
Oracle.Usunąłem ten tekst ze Ścieżki, gdzie moja Ścieżka już
%JAVA_HOME%\bin
z nim jest.Teraz zmienna
'JAVA_HOME'
kontroluje moją wersję Javy, której chciałem.źródło
Załóżmy, że zainstalowano pakiet JDK 10 po JDK 8 iw systemowej zmiennej środowiskowej ustawiono ścieżkę, taką jak „C: \ ProgramData \ Oracle \ Java \ javapath”, a następnie kontrolę wersji Java za pomocą tej ścieżki. zignoruje JAVA_HOME nawet ustawioną tutaj ścieżkę jdk 1.8 Więc usuń "C: \ ProgramData \ Oracle \ Java \ javapath" w ścieżce, aby uzyskać efekt ścieżki JAVA_HOME
źródło
Mam zainstalowaną Javę 7 i 8 i chcę przekierować do java 7, ale wersja java w moim oknie zachęty cmd pokazuje Java 8.
Dodano ścieżkę katalogu bin Java 7 ( C: \ Program Files \ Java \ jdk1.7.0_10 \ bin ) do zmiennej PATH na końcu, ale nie wyszło i pokazuje Java 8. Więc zmieniłem ścieżkę Java 7 na początek wartości ścieżki i zadziałało.
Otworzyłem nowe okno zachęty cmd i sprawdziłem moją wersję java, a teraz pokazuje Java 7
źródło
Ustaw zmienną środowiskową Path na żądany katalog jdk / bin
źródło
W moim przypadku mam zainstalowaną Javę 7 i 8 (obie x64) i chcę przekierować do java 7, ale wszystko jest ustawione na Javę 8. Java używa zmiennej środowiskowej PATH:
jako pierwsza opcja wyszukiwania czasu wykonywania folderu (jest to folder ukryty). Ta ścieżka zawiera 3 linki symboliczne, których nie można edytować.
Na moim komputerze zmienna środowiskowa PATH wygląda następująco:
W moim przypadku powinno to wyglądać tak:
Musiałem wyciąć i wkleić linki symboliczne w innym miejscu, aby java nie mógł ich znaleźć i mogę je później przywrócić.
Po ustawieniu zmiennych środowiskowych JAVA_HOME i JRE_HOME na żądane środowiska wykonawcze folderów Java (w moim przypadku jest to Java 7), polecenie
java -version
powinno wyświetlić żądane środowisko wykonawcze Java. Zauważam, że nie ma potrzeby majstrować przy rejestrze.Testowane na Win7 x64.
źródło
Ten problem jest prawdopodobnie spowodowany wcześniejszymi wersjami oprogramowania Java zainstalowanymi w systemie. Najpierw dokładnie sprawdź swoje zmienne środowiskowe i usuń wszystkie zmienne środowiskowe związane z poprzednimi wersjami JAVA i zamień te ścieżki na
C:\Program Files\Java\<your new jdk version>\bin
źródło
Jest tu dodatkowy czynnik; oprócz plików wykonywalnych java, które instalacja java umieszcza wszędzie tam, gdzie je poprosisz, w systemie Windows instalator java umieszcza również kopie niektórych z tych plików wykonywalnych w katalogu system32 systemu Windows, więc prawdopodobnie będziesz używać każdego pliku wykonywalnego Java, który był zainstalowany ostatnio.
źródło
Na wszelki wypadek, jeśli używasz pliku .BAT jako usługi systemu Windows, sugerowałbym odinstalowanie usługi Windows i ponowne jej zainstalowanie po zmianie% JAVA_HOME%, aby wskazywał na właściwą wersję Java.
źródło
Po pewnym czasie zmagania się z tym problemem i zbadania go, w końcu udało mi się go rozwiązać, wykonując następujące kroki:
1) zainstaluj wersję jdk 12
2) Utwórz nową zmienną w zmiennej systemowej
3) Nazwij ją jako JAVA_HOME i podaj ścieżkę instalacji jdk
4) dodaj tę zmienną w ścieżce i przenieś ją na górę.
5) przejdź do C: \ Program Files (86) \ Common Files \ Oracle \ Java \ javapath i zamień java.exe i javaw.exe na odpowiednie pliki o tych samych nazwach ze ścieżki do folderu pathtojavajdk / bin
Wreszcie sprawdziłem domyślną wersję java w cmd z "java -version" i zadziałało!
źródło