Jak ustawić java_home na Windows 7?


422

Poszedłem do zmiennych środowiskowych w „Systemie” w panelu sterowania i stworzyłem dwie nowe zmienne, jedną dla zmiennych użytkownika i jedną dla zmiennych systemowych. Oba zostały nazwane JAVA_HOME i oba wskazują na

C: \ Sun \ SDK \ jdk \ bin

Ale z jakiegoś powodu nadal pojawia się następujący błąd podczas uruchamiania polecenia Java ...

BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error  occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation

Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml

Jak mogę rozwiązać ten problem?


3
Zamknąłeś cmd i ponownie go otworzyłeś? Wygląda również na to, że jesteś wskazany na środowisko JRE, a nie JDK. Czy zainstalowałeś JDK?
gniew

Zdecydowanie zainstalowałem JDK i znajduje się on w C: \ Sun \ SDK \ jdk \ bin, dla którego ustawiłem java_home na.
Derek

Zrestartowałem nawet ......... kilka razy od ........
Derek

Wciąż wygląda na C: \ Program Files \ Java \ jre6 \ lib \ c Czy możesz zrobić echo% JAVA_HOME% w wierszu polecenia i zobaczyć, co zgłasza
gniew

3
Rozwiązaniem jest: Pomiń / bin
IceFire

Odpowiedzi:


673

Znajdź katalog instalacyjny JDK

Najpierw musisz znać ścieżkę instalacji Java Development Kit.

Otwórz domyślną ścieżkę instalacji dla JDK:

C:\Program Files\Java

Powinien istnieć podkatalog taki jak:

C:\Program Files\Java\jdk1.8.0_172

Uwaga: wystarczy umieścić ścieżkę do jdk bez / bin na końcu (jak sugerowano w wielu miejscach). np. C: \ Java \ jdk1.8.0_172, a NIE C: \ Java \ jdk1.8.0_172 \ bin!


Ustaw zmienną JAVA_HOME

Po uzyskaniu ścieżki instalacyjnej JDK:

  1. Kliknij prawym przyciskiem myszy ikonę Mój komputer na pulpicie i wybierz Właściwości .
  2. Kliknij kartę Zaawansowane , a następnie Zmienne środowiskowe przycisk .
  3. W obszarze Zmienne systemowe kliknij opcję Nowy.
  4. Wprowadź nazwę zmiennej jako JAVA_HOME .
  5. Wprowadź wartość zmiennej jako ścieżkę instalacji pakietu Java Development Kit.
  6. Kliknij OK .
  7. Kliknij Zastosuj zmiany .

Uwaga: Może być konieczne ponowne uruchomienie systemu Windows

Cały artykuł znajduje się tutaj, na moim blogu: Ustawianie zmiennej JAVA_HOME w systemie Windows .


121
dzięki. w końcu zdałem sobie sprawę, że wystarczy umieścić ścieżkę do jdk bez / bin na końcu (jak sugerowano w wielu miejscach). np. C: \ Java \ jdk1.6.0_31 i NIE C: \ Java \ jdk1.6.0_31 \ bin!
salocinx

24
Boże, nie ma instalatora, który zrobił dla ciebie ten krok :) Właśnie przełączyłem się z wersji Enterprise na wersję Community i byłem przekonany, że pobrałem niewłaściwą rzecz, ponieważ było to jedno kliknięcie na wersję Enterprise: p
John Humphreys - w00te

6
Czasami zmiany zmienne systemowe nie działają, dopóki nie uruchomisz ponownie systemu Windows.
Andy

11

4
/Java/jre*nie jest katalogiem JDK, jest to katalog środowiska wykonawczego programów Java. JDK jest w osobnym katalogu, chyba że chcesz zrobić jakiś szalony hack
ericn

157

Dla mnie zadziałało dodanie %JAVA_HOME%\binzmiennej środowiskowej Path ze JAVA_HOMEzmienną środowiskową wskazującą na jdkfolder.


126

Musisz najpierw zainstalować JDK w swoim systemie.

Ustaw Java Home

JAVA_HOME = C: \ Program Files \ Java \ jdk1.7.0 [Lokalizacja katalogu instalacyjnego JDK]

Po uzyskaniu ścieżki instalacyjnej JDK:

  • Kliknij prawym przyciskiem myszy ikonę Mój komputer
  • Wybierz Właściwości.
  • Kliknij kartę Zaawansowane ustawienia systemu po lewej stronie ekranu
  • Aadvance Popup jest otwarty.
  • Kliknij przycisk Zmienne środowiskowe.

wprowadź opis zdjęcia tutaj

  • W obszarze Zmienne systemowe kliknij opcję Nowy.
  • Wprowadź nazwę zmiennej jako JAVA_HOME.
  • Wprowadź wartość zmiennej jako ścieżkę instalacji pakietu Java Development Kit.
  • Kliknij OK.
  • Kliknij Zastosuj zmiany.

Ustaw ścieżkę JAVA w zmiennej systemowej

PATH = C: \ Program Files \ Java \ jdk1.7.0; [Dołącz wartość z średnikiem]

Sprawdź tutaj


14
Czy JAVA_HOME powinien zawierać „\ bin”? Inne odpowiedzi tutaj sugerują, że „bin” powinien być dołączony do PATH, ale nie do JAVA_HOME.
devuxer

72
JAVA_HOME NIE powinien zawierać \ bin.
Larry Silverman,

5
[PLUS ONE] Ładne kwiaty!
GingerHead

Ale na obrazie wprowadzasz za pomocą \ bin.
NaveenDA

32

W cmd (tymczasowo dla tego okna cmd):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%

2
Prawdziwe. Jeśli używasz, setxto JAVA_HOMEnadal będzie ustawiony po wyłączeniu komputera. Nie musisz go ustawiać ponownie. Również binnie jest potrzebne.
Tenzin,

Tak, ale jeśli nie chcesz oficjalnie instalować Java, to jak powiedział sgrillon, możesz ustawić tymczasowo dla tego wystąpienia. Jeszcze lepiej, utworzyć plik wsadowy, który można uruchomić, aby otworzyć okno wiersza polecenia i zestawu JAVA_HOME, PATHi CLASSPATH, można mieć „przenośne” środowisko Java.
Synetech,

To prawda, ale „” nie są potrzebne do ustawienia adresu JAVA_HOME
Aboozar Rajabi

1
@Aboozar Rajabi, potrzebujesz „”, jeśli ... ścieżka zawiera znak spacji.
sgrillon

19

Musisz ustawić go na C:\Sun\SDK\jdk(Zakładając, że tam jest zainstalowany JDK - To nie jest domyślny) - Nie wkładaj \ bin C:\Sun\SDK\jdk\bin.

Jeśli twoja aplikacja działa tylko wtedy, gdy jesteś zalogowany jako bieżący użytkownik, umieść ją w zmiennych użytkownika - Jeśli musi działać dla wszystkich użytkowników w systemie, umieść ją w zmiennych systemowych.

Konieczne może być również dodanie %JAVA_HOME%\bindo ścieżki (zależy to również od tego, czy uruchamiasz ją tylko od użytkownika, czy od wszystkich użytkowników, w tym Systemu)




7

Dla tych, którzy wciąż mają problem z tym problemem (próbowałem wszystkich powyższych sugestii) -

Jeśli korzystasz z 64-bitowej wersji systemu Windows i zainstalowałeś 32-bitowy JDK, oprócz dostosowania PATHzmiennych może być konieczne dostosowanie rejestru zmiennych .

Wyjąłem włosy, prawidłowo je ułożyłem PATH zmienne - wciąż bezskuteczne - i dopiero wtedy znajdowałem „puste” wpisy Java w moim rejestrze, pozornie martwy punkt naprawiania „nieudanego” środowiska Java Runtime Environment.

Korzystając Process Monitorz oglądania programu, który próbowałem rozpocząć, w celu wykrycia, gdzie szukał w rejestrze Java (Runtime Environment), triumfalnie odkryłem, że przegląda on 32-bitową wersję wpisów rejestru znalezionych wHKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment .

W ramach tego klucza powinny znajdować się zainstalowane podklucze różnych wersji Java (przeszłe i / lub obecne). Kliknij podklucz najnowszej wersji (mój podklucz to obecnie na przykład 1.7.0_25). Po kliknięciu tego podklucza zobaczysz wartości rejestru w rejestrze wymienione po prawej stronie, aw szczególności JavaHomei RuntimeLib. Musisz zmodyfikować wartości tych dwóch wartości, aby odpowiednio odzwierciedlały zarówno bieżący folder, jak i plik jvm.dll.

Na przykład w moim przypadku wartości były (poprzednio) odpowiednio ustawione na C:\Program Files (x86)\Java\jre7i C:\Program Files (x86)\Java\jre7\bin\client\jvm.dllktóre nie istnieją na moim komputerze. Musiałem zaktualizować je do bieżącego folderu i pliku C:\Program Files (x86)\Java\jdk1.7.0_25\jrei C:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll.

Znowu będzie to zależeć całkowicie zarówno od zainstalowanej wersji Javy (JDK i / lub JRE) - 32- lub 64-bitowej - oraz od typu używanego systemu operacyjnego - 32- lub 64-bitowego. Po prostu wiedz, że są odzwierciedlone w różnych lokalizacjach w rejestrze (takich jakWow6432Node Dla aplikacji 32-bitowych, w moim przypadku z 32-bitowym JDK zainstalowanym na komputerze 64-bitowym).

Teraz, gdy zaktualizowałem te dwie wartości rejestru, mój program działa bezbłędnie, bez żadnych czkawek lub skarg na brakujące środowisko Java Runtime Environment (wynikające z rejestru).


1
Jestem na 64-bitowym komputerze z systemem Windows 7 i mam zarówno: C: \ Program Files (x86) \ Java \ i C: \ Program Files \ Java \ Teraz mam pytanie, na który powinien wskazywać mój dom Java?
voidMainReturn

Ciekawy; Mam tylko folder Java poniżej folderu x86.
B. Clay Shannon

Pod C: \ Program Files (x86) \ Java \ jdk1.7.0_25 \ jre \ bin Nie mam klienta katalogu, istnieje tylko pod C: \ Program Files (x86) \ Java \ jre7 \ bin. Co powinienem zrobić?
Pavol

W Windows 7, po wyszukaniu słowa kluczowego „1.8.0_74”, znalazłem wiele rejestrów za pomocą regedit w HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 / lub ../1.8.0_65 i wszystkie inne wcześniej zainstalowane ... Po usunięciu rejestru jeden po drugim od dołu do mojej najnowszej zainstalowanej wersji java 1.8.0_112, teraz YourKit java profiler (profiler.exe) działa bez błędu: „Wystąpił błąd podczas uruchamiania C: \ Program Files \ Java \ jdk1.8.0_74 \ bin \ javaw.exe ”.
David

7

Jest to oficjalne rozwiązanie do konfigurowania środowiska Java ze strony www.java.com - tutaj .

Istnieją rozwiązania dla Windows 7, Windows Vista, Windows XP, Linux / Solaris i innych powłok.


Przykład

System Windows 7

  1. Wybierz Komputer z menu Start
  2. Wybierz Właściwości systemu z menu kontekstowego
  3. Kliknij Zaawansowane ustawienia systemu -> zakładka Zaawansowane
  4. Kliknij Zmienne środowiskowe, w obszarze Zmienne systemowe znajdź ŚCIEŻKA i kliknij ją.
  5. W oknie Edycja zmodyfikuj ŚCIEŻKĘ, dodając położenie klasy do wartości ŚCIEŻKI. Jeśli nie masz pozycji ŚCIEŻKA, możesz dodać nową zmienną i dodać ŚCIEŻKĘ jako nazwę i położenie klasy jako wartość.
  6. Otwórz ponownie okno wiersza polecenia i uruchom kod Java.

1
Oficjalne instrukcje są bezużyteczne. Podają jedynie ogólne instrukcje, jak ustawić zmienne środowiskowe, zamiast wskazywać wartość, którą należy ustawić. Mówią po prostu, aby ustawić ją jako „miejsce klasy”, co jest mylące i pozbawione znaczenia.
Synetech,

Te instrukcje nie ustawiają JAVA_HOME, całkowicie innej zmiennej niż PATH, która jest wymagana dla niektórych programów.
Jules

6

System Windows 7

  1. Przejdź do Panelu sterowania \ Wszystkie elementy Panelu sterowania \ Konta użytkowników za pomocą Eksploratora (nie Internet Explorera!)

    lub

    • kliknij przycisk Start

      początek

    • kliknij swoje zdjęcie

      clickOnPhoto

  2. Zmień moje zmienne środowiskowe

    Zmień moje zmienne środowiskowe

  3. Nowy...

    Nowy

    (jeśli nie masz wystarczających uprawnień, aby dodać go w sekcji Zmienne systemowe, dodaj go do sekcji Zmienne użytkownika)

  4. Dodaj JAVA_HOME jako nazwę zmiennej i lokalizację JDK jako wartość zmiennej> OK

    edytuj zmienną systemową ok

Test:

  • otwórz nową konsolę (cmd)
  • rodzaj set JAVA_HOME
    • oczekiwany wynik: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60

6

Musimy rozróżnić dwie zmienne środowiskowe omówione tutaj zamiennie. Jednym z nich jest zmienna JAVA_HOME . Druga to Ścieżka zmienna . Każdy proces, który odwołuje się do zmiennej JAVA_HOME, szuka ścieżki wyszukiwania do JDK, a nie JRE. Zastosowanie zmiennej JAVA_HOME nie jest przeznaczone dla samego kompilatora Java. Kompilator zna swoją lokalizację. Zmienna jest przeznaczona dla innego oprogramowania w celu łatwiejszego zlokalizowania kompilatora. Ta zmienna jest zwykle używana przez oprogramowanie IDE w celu kompilacji i kompilacji aplikacji z kodu źródłowego Java. Z kolei interpreter CMD dla systemu Windows oraz wiele innych programów innych firm i osób trzecich odwołuje się do zmiennej Path, a nie do zmiennej JAVA_HOME.

Przypadek użycia 1: Kompilacja z CMD

Na przykład, jeśli nie korzystasz z żadnego oprogramowania IDE, a chcesz po prostu móc kompilować z CMD, niezależnie od bieżącego katalogu roboczego, to chcesz poprawnie ustawić zmienną Path. W twoim przypadku nie potrzebujesz nawet zmiennej JAVA_HOME. Ponieważ CMD używa Path, a nie JAVA_HOME do zlokalizowania kompilatora Java.

Przypadek użycia 2: Kompilacja z IDE

Jednakże, jeśli za pomocą niektórych programów IDE, to trzeba patrzeć przede wszystkim dokumentacji. Może wymagać ustawienia JAVA_HOME, ale może również używać innej nazwy zmiennej do tego samego celu. Przez lata standardem de facto był JAVA_HOME, ale nie zawsze tak jest.

Przypadek użycia 3: Kompilacja z IDE i CMD

Jeśli oprócz oprogramowania IDE chcesz również móc kompilować z CMD, niezależnie od bieżącego katalogu roboczego, oprócz zmiennej JAVA_HOME może być konieczne dołączenie ścieżki wyszukiwania JDK do zmiennej Path.

JAVA_HOME vs. Path

Jeśli twój problem dotyczy kompilacji Javy, chcesz sprawdzić zmienną JAVA_HOME i Ścieżkę (jeśli dotyczy). Jeśli problem dotyczy uruchamiania aplikacji Java, chcesz sprawdzić zmienną Path.

Zmienna ścieżki jest powszechnie stosowana we wszystkich systemach operacyjnych. Ponieważ jest on zdefiniowany przez system i ponieważ jest to domyślna zmienna używana do lokalizacji środowiska JRE, prawie nigdy nie ma problemów z uruchomieniem aplikacji Java. Zwłaszcza nie w systemie Windows, w którym instalatorzy oprogramowania zwykle wszystko konfigurują. Ale jeśli instalujesz ręcznie, najbezpieczniej jest pominąć zmienną JAVA_HOME i po prostu użyć zmiennej Path do wszystkiego, zarówno dla JDK, jak i JRE. Każda najnowsza wersja oprogramowania IDE powinna być w stanie ją pobrać i używać.

Symlinks

Dowiązania symboliczne mogą stanowić jeszcze inny sposób odwoływania się do ścieżki wyszukiwania JDK poprzez nałożenie jednej z istniejących zmiennych środowiskowych.

Nie jestem pewien co do poprzednich wersji wydań JDK / JRE Oracle / Sun, ale przynajmniej instalator jdk1.8.0_74 dołącza ścieżkę wyszukiwania C:\ProgramData\Oracle\Java\javapathdo zmiennej Path i umieszcza ją na początku wartości ciągu. Ten katalog zawiera dowiązania symboliczne do plików java.exe, javaw.exe i javaws.exe w katalogu JRE.

Tak więc przynajmniej w przypadku JDK Java 8 i przypuszczalnie samodzielnego JRE Java 8 JRE nie trzeba konfigurować zmiennych środowiskowych. Tak długo, jak korzystasz z pakietu instalatora, aby go skonfigurować. Mogą jednak występować różnice w instalacji systemu Windows. Uwaga: środowisko Oracle JRE jest dostarczane w pakiecie z pakietem JDK.

Jeśli kiedykolwiek zauważysz, że twoja konfiguracja JDK Java używa niewłaściwej wersji kompilatora lub wydaje się, że działa magicznie, bez wyraźnego zdefiniowania tego (bez rzucania zaklęcia), możesz mieć link symboliczny gdzieś w zmiennych środowiskowych . Więc możesz chcieć sprawdzić dowiązanie symboliczne.


5

goto Mycomputer (ten komputer) -> kliknij prawym przyciskiem myszy -> wybierz właściwości -> Zaawansowane ustawienia systemu -> zmienne środowiskowe -> w zmiennych systemowych kliknij przycisk „ Nowy ” i napisz JAVA_HOME w nazwie zmiennej i ścieżce C: \ Program Files \ Java \ jdk1. 8.0_131, w których jdk jest obecny w wartości zmiennej -> kliknij OK.

zamknij i ponownie otwórz wiersz polecenia po ustawieniu JAVA_HOME. Czasami zmiany nie odzwierciedlają się w cmd otwartym przed ustawieniem JAVA_HOME.

możesz także ustawić JAVA_HOME poprzez sam terminal: SET JAVA_HOME = "C: \ Program Files (x86) \ Java \ jdk1.8.0_131"


4

W środowisku Eclipse: Window->Preferences->Java->Installed JREs

Użyj funkcji wyszukiwania, aby upewnić się, że na liście znajduje się Twoja najnowsza instalacja Java; następnie upewnij się, że to ten jest zaznaczony. To powinien być JDK, a nie JRE.


Te instrukcje nie ustawiają JAVA_HOME, który nie jest związany z zaćmieniem.
Jules

4

Podczas dodawania katalogu Java do PATHzmiennej możesz chcieć umieścić go na samym początku. Miałem problem, że umieszczenie katalogu Java na końcu PATHnie zadziałałoby. Po sprawdzeniu znalazłem java.exew moim Windows\System32katalogu i wygląda na to, że pierwszy wygrywa, gdy w twoim pliku jest kilka plików o tej samej nazwie PATH...


Kiedy / jeśli zainstalować Java z instalatorem, zastąpi on kopie java.exei javaw.exew folderach systemowych z kopii z JRE / JDK, więc powinien nadal działać. Jeśli zainstalujesz go ręcznie (po prostu rozpakuj archiwa), to naprawdę będziesz musiał uważać, dla której kopii jest uruchamiana.
Synetech,

Te instrukcje nie ustawiają JAVA_HOME, całkowicie innej zmiennej niż PATH, która jest wymagana dla niektórych programów.
Jules

3

Uruchom Eclipse jako administrator.

To rozwiązało mój problem. Nadal szukam logiki, która się za tym kryje.


1
Nie mogę powiedzieć, że dokładnie to rozumiem, ale może zaćmienie faktycznie podaje tutaj zły komunikat o błędzie. Po uruchomieniu go jako użytkownik inny niż administrator, nie może usunąć plików .jar ani czegoś takiego, a następnie fałszywie zgłasza, że ​​nie znalazł javaca. W każdym razie to rozwiązanie również działało dla mnie.
Jess

jeśli używasz Eclipse w Windows Server 2012 R2 tak jak w moim przypadku, uruchom Eclipse jako administrator. Pamiętaj również, aby ustawić java_home na folder plików programu, a nie folder plików programu (86). Mam nadzieję, że to pomoże komuś.
ombiro

2

jeśli nie uruchomiłeś ponownie komputera po zainstalowaniu jdk, po prostu uruchom ponownie komputer.

jeśli chcesz utworzyć przenośną javę i ustawić ścieżkę przed użyciem java, po prostu utwórz plik wsadowy, który wyjaśniłem poniżej.

jeśli chcesz uruchomić ten plik wsadowy podczas uruchamiania komputera, po prostu umieść skrót do pliku wsadowego w folderze startowym. W folderze startowym systemu Windows 7 jest „C: \ Users \ user \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup”

stwórz plik wsadowy w ten sposób:

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin

Uwaga: java_homei pathsą zmiennymi. możesz wprowadzić dowolną zmienną, jak chcesz. na przykład set amir=good_boyi możesz zobaczyć amir przez %amir%lub możesz zobaczyć java_home przez%java_home%


0

Po godzinach pracy nad większością rozwiązań tutaj problem został dla mnie rozwiązany przez zainstalowanie 32-bitowego JDK.


1
Co jest w porządku, jeśli tego właśnie chcesz, ale niektórzy wolą nie instalować Java i po prostu ręcznie konfigurują „przenośne” środowisko. W takim przypadku musisz wiedzieć, jakie zmienne środowiskowe należy ustawić.
Synetech,

0

Możesz zajrzeć do folderu Windows / System32 w poszukiwaniu następujących plików: - java.exe - javaw.exe - javaws.exe

Ponieważ zmienna ścieżki zawiera te pliki, możesz odczuwać ból głowy, próbując dowiedzieć się, dlaczego wersja java lub wersja javac wciąż wskazuje stary JAVA_HOME: zmień nazwy tych plików, na przykład usuń rozszerzenie z podkreśleniem. Następnie musisz tylko utworzyć zmienną JAVA_HOME, dodać ją do zmiennej ścieżki (np.% JAVA_HOME%) i dołączyć cząstkę „\ bin”. W ten sposób musisz tylko zmienić zmienną JAVA_HOME wskazującą na inny JRE lub JDK i mieć wiele instalacji Java po prostu ustawiając JAVA_HOME.

Oznacza to również, że lepiej jest zainstalować Javę ręcznie, bez instalatora, abyś mógł się nią bawić.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.