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?

user297850
źródło

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.

David W.
źródło
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

Amr Lotfy
źródło
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.

das_j
źródło
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.

Jan Martiška
źródło
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.

akostadinov
źródło
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

michaelok
źródło
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!

nexogen.io
źródło
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