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?
Odpowiedzi:
Znajdź katalog instalacyjny JDK
Najpierw musisz znać ścieżkę instalacji Java Development Kit.
Otwórz domyślną ścieżkę instalacji dla JDK:
Powinien istnieć podkatalog taki jak:
Ustaw zmienną JAVA_HOME
Po uzyskaniu ścieżki instalacyjnej JDK:
Cały artykuł znajduje się tutaj, na moim blogu: Ustawianie zmiennej JAVA_HOME w systemie Windows .
źródło
/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 hackDla mnie zadziałało dodanie
%JAVA_HOME%\bin
zmiennej środowiskowej Path zeJAVA_HOME
zmienną środowiskową wskazującą najdk
folder.źródło
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:
Ustaw ścieżkę JAVA w zmiennej systemowej
PATH = C: \ Program Files \ Java \ jdk1.7.0; [Dołącz wartość z średnikiem]
źródło
W cmd (tymczasowo dla tego okna cmd):
źródło
setx
toJAVA_HOME
nadal będzie ustawiony po wyłączeniu komputera. Nie musisz go ustawiać ponownie. Równieżbin
nie jest potrzebne.JAVA_HOME
,PATH
iCLASSPATH
, można mieć „przenośne” środowisko Java.Musisz ustawić go na
C:\Sun\SDK\jdk
(Zakładając, że tam jest zainstalowany JDK - To nie jest domyślny) - Nie wkładaj \ binC:\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%\bin
do ś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)źródło
http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html
Panel sterowania> Java, karta Java, kliknij przycisk Widok. W parametrach środowiska wykonawczego wstaw:
Lub po uruchomieniu Java możesz dodać ten przełącznik wiersza poleceń do polecenia:
źródło
Jeden obraz może rozwiązać ten problem.
Więcej
źródło
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
PATH
zmiennych 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 Monitor
z 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
JavaHome
iRuntimeLib
. 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\jre7
iC:\Program Files (x86)\Java\jre7\bin\client\jvm.dll
które nie istnieją na moim komputerze. Musiałem zaktualizować je do bieżącego folderu i plikuC:\Program Files (x86)\Java\jdk1.7.0_25\jre
iC:\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 jak
Wow6432Node
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).
źródło
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
źródło
System Windows 7
Przejdź do Panelu sterowania \ Wszystkie elementy Panelu sterowania \ Konta użytkowników za pomocą Eksploratora (nie Internet Explorera!)
lub
kliknij przycisk Start
kliknij swoje zdjęcie
Zmień moje zmienne środowiskowe
Nowy...
(jeśli nie masz wystarczających uprawnień, aby dodać go w sekcji Zmienne systemowe, dodaj go do sekcji Zmienne użytkownika)
Dodaj JAVA_HOME jako nazwę zmiennej i lokalizację JDK jako wartość zmiennej> OK
Test:
set JAVA_HOME
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
źródło
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 są 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\javapath
do 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.
źródło
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"
źródło
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.
źródło
Podczas dodawania katalogu Java do
PATH
zmiennej możesz chcieć umieścić go na samym początku. Miałem problem, że umieszczenie katalogu Java na końcuPATH
nie zadziałałoby. Po sprawdzeniu znalazłemjava.exe
w moimWindows\System32
katalogu i wygląda na to, że pierwszy wygrywa, gdy w twoim pliku jest kilka plików o tej samej nazwiePATH
...źródło
java.exe
ijavaw.exe
w 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.Uruchom Eclipse jako administrator.
To rozwiązało mój problem. Nadal szukam logiki, która się za tym kryje.
źródło
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:
Uwaga:
java_home
ipath
są zmiennymi. możesz wprowadzić dowolną zmienną, jak chcesz. na przykładset amir=good_boy
i możesz zobaczyć amir przez%amir%
lub możesz zobaczyć java_home przez%java_home%
źródło
Po godzinach pracy nad większością rozwiązań tutaj problem został dla mnie rozwiązany przez zainstalowanie 32-bitowego JDK.
źródło
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ć.
źródło