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.