it-swarm.dev

Jak ustawić domyślną instalację Java/środowisko wykonawcze (Windows)?

Jestem w sytuacji, w której zainstalowałem JDK, ale nie mogę uruchomić apletów w przeglądarkach (może nie zainstalowałem JRE).

Jednak po zainstalowaniu środowiska JRE blokuje ono JDK jako domyślne środowisko wykonawcze. Łamie to prawie wszystko (Eclipse, Ant) - ponieważ wymagają JVM serwera.

Obecnie nie ma zmiennej środowiskowej Java_HOME - wydaje się, że używa ona magii rejestru (ustawienie ścieżki systemowej też nie ma sensu). Wcześniej odinstalowałem środowisko JRE po użyciu go do przywrócenia JDK. Tym razem chcę to naprawić poprawnie.

To także przejawia się w jre autoupdater - kiedyś miałem działającą konfigurację JDK i JRE, ale zaktualizowałem i wszystko załamałem.

44
Stephen

To trochę boli w systemie Windows. Oto co robię.

Zainstaluj najnowszy Sun JDK, np. 6u11 , w ścieżce takiej jak c:\install\jdk\Sun\6u11, pozwól instalatorowi zainstalować publiczne JRE w domyślnym miejscu (c:\program files\blah). Spowoduje to skonfigurowanie domyślnego środowiska JRE dla większości rzeczy.

W razie potrzeby zainstaluj starsze JDK, np. 5u18 w c:\install\jdk\Sun\5u18, ale nie instaluj publicznych JRE.

W trakcie tworzenia mam mały plik wsadowy, którego używam do skonfigurowania polecenia Wiersz dla każdej wersji JDK. Zasadniczo po prostu ustaw Java_HOME=c:\jdk\Sun\JDK_DESIRED, a następnie ustaw PATH=%Java_HOME%\bin;%PATH%. Spowoduje to umieszczenie pożądanego JDK najpierw w ścieżce, a wszelkie dodatkowe narzędzia, takie jak Ant lub Maven, mogą używać zmiennej Java_HOME.

Ścieżka jest ważna, ponieważ większość publicznych instalacji JRE umieszcza połączony plik wykonywalny w c:\WINDOWS\System32\Java.exe, który zwykle zastępuje większość innych ustawień.

40
nbeyer

Poprawiłem zachowanie mojego skrótu startowego Eclipse w oknie dialogowym właściwości

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

do

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

jak opisano w dokumentacji Eclipse

Jest to tylko łatka, ponieważ zależy od skrótu do naprawiania rzeczy ...

Alternatywą jest stałe ustawienie parametru w pliku inicjującym Eclipse.

6
Jörn Guy Süß

Właśnie miałem ten problem (Java 1.8 vs. Java 9 na Windows 7), a moje ustalenia są następujące:

krótka wersja

domyślnie wydaje się (z powodu wpisu Path)

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

wybierz żądaną wersję (test, użyj zakładki wypełniającej cmd, nie wiesz, co reprezentują te liczby), miałem 2 opcje, zobacz dłuższą wersję, aby uzyskać szczegółowe informacje

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

usuń węzeł/link i link do swojej wersji (ta z końcówką 181743567 w moim przypadku Java 8)

rmdir javapath
mklink /D javapath javapath_target_181743567

dłuższa wersja:

Zainstaluj ponownie Java 1.8 po tym, jak Java 9 nie działa. Kolejność instalacji to jdk1.8.0_74, jdk-9.0.4 i próba uczynienia Java 8 domyślną z jdk1.8.0_162 ...

Po instalacji jdk1.8.0_162 nadal mam

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)

To, co widzę na ścieżce, jest

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

Sprawdziłem więc, co to jest i znalazłem, że to skrzyżowanie (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

Te hasze nie dzwonią, ale kiedy sprawdziłem

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)

aby ponownie uaktywnić Java 8, musiałem usunąć link zgodnie z opisem tutaj

rmdir javapath

i odtworzyć z Javą, którego chciałem

mklink /D javapath javapath_target_181743567

przetestowany:

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)

** aktualizacja (Java 10) **

W Javie 10 jest podobny, tylko javapath jest w c: Program Files (x86) Wspólne pliki Oracle Java dziwne, ponieważ zainstalowałem 64-bitowy IMHO

.\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

Po prostu instaluję wszystkie wersje JDK, których potrzebuję, a najnowsza instalacja staje się domyślna, więc po prostu ponownie instaluję tę, która ma być domyślna, jeśli to konieczne.

1
John Mikic

Po wielu próbach podejście do skrzyżowania okazało się wygodniejsze. Jest to bardzo podobne do sposobu rozwiązania tego problemu w systemie Linux.

Zasadniczo składa się z posiadania linku pomiędzy c:\tools\Java\default a faktyczną wersją Java, której chcesz używać jako domyślnej w systemie.


Jak to ustawić:

  1. Pobierz skrzyżowanie i upewnij się, że umieściłeś go w zmiennej środowiskowej PATH
  2. Ustaw swoje środowisko w ten sposób: - PATH wskazując na TYLKO do tego środowiska c:\tools\Java\default\bin - Java_HOME wskazując na `c:\tools\Java\default
  3. Przechowuj wszystkie swoje pliki Jre w jednym folderze, takim jak (jeśli zrobisz to w folderze Program FIles, możesz napotkać niektóre
    • C:\tools\Java\JRE_1.6
    • C:\tools\Java\JRE_1.7
    • C:\tools\Java\JRE_1.8
  4. Otwórz polecenie Wiersz i cd, aby C:\tools\Java\
  5. Wykonaj junction default JRE_1.6

Spowoduje to utworzenie skrzyżowanie (który jest mniej więcej jak łącze symboliczne w systemie Linux) między C:\tools\Java\default a C:\tools\Java\JRE_1.6

W ten sposób zawsze będziesz mieć domyślną Java w c:\tools\Java\default.

Jeśli musisz zmienić domyślną Java na wersję 1.8, po prostu musisz ją wykonać

junction -d default
junction default JRE_1.8 

Następnie możesz mieć pliki wsadowe, aby to zrobić bez polecenia Podpowiedź jak set_jdk8.batset_jdk7.bat

Zgodnie z sugestią @ СӏаџԁеМаятіи

EDYCJA: Z systemu Windows Vista można użyć mklink /J default JRE_1.8

0
snovelli

Mam kilka JDK (1.4, 1.5, 1.6) zainstalowanych w C:\Java z ich JRE. Następnie udostępniam Sun aktualizację publicznego JRE w C:\Program Files\Java.
Ostatnio jest poprawa, instalacja w jre6. Wcześniej na nową wersję istniał inny folder (1.5.0_4, 1.5.0_5 itd.), Który zajmował dużo miejsca

0
PhiLho

alternatywnym sposobem uruchomienia aplikacji .jar jest utworzenie dla niej pliku .bat cmd Na przykład, masz jre10 i jre8 zainstalowane na swoim komputerze, a jre10 jest domyślnym jre . ale twój jar jest określony pracuj z jre8, następujące cmd zadziała:

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