Czy JAVA_HOME powinno wskazywać na JDK czy JRE?


102

I wskazał JAVA_HOMEna C:\Program Files (x86)\Java\jre7. To działa dobrze. Następnie rozpakowałem ant i ustawiłem zmienne środowiskowe związane z Antem, po wpisaniu dostałem następujące komunikaty o błędach"ant -version"

wizerunek

Przeszukałem to forum. Wygląda na to, że jednym z rozwiązań jest wskazanie Java na JDK zamiast JRE. Nie jestem do końca pewien, czy to powinno być rozwiązanie. Innymi słowy, ogólnie, na który JAVA_HOME powinien wskazywać? JDK czy JRE?

Odpowiedzi:


121

Jeśli tworzysz program lub tworzysz za pomocą Maven lub Ant, musisz wskazać JDK (Java Development Kit), w którym znajdują się narzędzia takie jak javac(kompilator Java). W przeciwnym razie możesz wskazać środowisko JRE (Java Runtime Environment).

JDK zawiera wszystko, co ma JRE, a także więcej. Jeśli wykonujesz tylko programy w języku Java, możesz wskazać środowisko JRE lub JDK.


7
Więc JAVA_HOMEjest używany do robienia dwóch rzeczy: 1: do narzędzi programistycznych, znajdowania javac.exe. 2: dla narzędzi nierozwojowych, znajdowanie java.exe. Wydaje się, że narusza to zasadę „jedno narzędzie do jednej rzeczy” . Nie należy JDK_HOMEgo używać zamiast tego?
Pacerier,

4
Diagram w tej witrynie przedstawia relacje między JDK i JRE. docs.oracle.com/javase/8/docs
andrybak

1
Czy można sprawdzić programowo, czy ścieżka Java jest ustawiona jako JRE czy JDK?
Dinesh Kumar P

9

Po prostu (zmień na jdk1.xxx_xx)

JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_05


6

Mój JAVA_HOME wskazuje na JDK. Jeśli nadal nie działa, sprawdź, czy pobrałeś ant dla Javy 7, a nie dla Javy 6.


5

Generalnie nie ma znaczenia, czy wskażesz JRE czy JDK. To zależy od aplikacji, która go używa. Dokumentacja Ant mówi, że powinieneś skierować go na JDK, aby uzyskać wszystkie funkcje Ant.


2

jako programista powinieneś wskazać JAVA_HOME na jdk, aby uzyskać dostęp do kopilera javac itp. Dobrze jest jednak, jeśli możesz przetestować swój program, aby działał w środowisku JRE. Jeśli korzystasz z serwera aplikacji, często potrzebujesz również JDK zamiast JRE, ale to zależy od konkretnego serwera.


2

Możesz użyć JDK lub JRE, ale:

JAVA_HOME jest używany przez program uruchamiający do znajdowania JDK / JRE do użycia. (JDK jest zalecany, ponieważ niektóre zadania wymagają narzędzi Java).
. Ustawienie ANT_HOME


0

Uprośćmy to. Przejdź do ustawień i wyszukaj „Zmienne środowiskowe”. Gdy pojawi się okno zmiennych środowiskowych, po prostu utwórz nową zmienną SYSTEM, klikając NOWA, a następnie PRZEGLĄDAJ KATALOG, aż znajdziesz ścieżkę instalacyjną JDK. JDK powinien być zainstalowany w plikach programu i zobaczysz folder JAVA, a wewnątrz folderu jest JDK i JRE ... Jeśli piszesz kod, musisz wybrać JDK !!! Nie słuchaj nikogo, kto twierdzi, że JRE wystarczy ... NIE! Nie będzie! Właściwy katalog powinien wyglądać tak : C: \ Program Files \ Java \ jdk1.8.0_144, to takie proste!


2
@Stephan Istniejące odpowiedzi już dostarczają informacji, na które poświęciłem czas. To jest twoje uzasadnienie dla przegłosowania? To jest problem z wieloma z tych wątków. Po pierwsze, odpowiedź na podstawową zasadę nie oznacza, że ​​odpowiedź była dobrze sformułowana lub nawet pomocna. Moja odpowiedź wcale nie jest taka sama, jak poprzednie odpowiedzi. Odpowiedź, której udzieliłem, zawierała dokładne instrukcje
nexogen.io
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.