Должен ли JAVA_HOME указывать на JDK или JRE?

102

Я указал JAVA_HOMEна C:\Program Files (x86)\Java\jre7. Работает нормально. После этого я разархивировал ant и настроил переменные среды, связанные с Ant, после ввода я получил следующие сообщения об ошибках"ant -version"

образ

Я искал этот форум. Похоже, одно из решений - указать Java на JDK вместо JRE. Я не совсем уверен, должно ли это быть решением. Другими словами, вообще, на что должен указывать JAVA_HOME? JDK или JRE?

user297850
источник

Ответы:

121

Если вы занимаетесь разработкой или сборкой с помощью Maven или Ant, вам необходимо указать JDK (Java Development Kit), где javacнаходятся такие утилиты, как (Java Compiler). В противном случае вы можете указать JRE (Java Runtime Environment).

JDK содержит все, что есть в JRE, и многое другое. Если вы просто выполняете программы на Java, вы можете указать либо JRE, либо JDK.

Дэвид В.
источник
7
Так JAVA_HOMEиспользуется для двух вещей: 1: для средств разработки, поиска javac.exe. 2: для инструментов, не связанных с разработкой, находка java.exe. Это, кажется, нарушает принцип «один инструмент для одного» . Не JDK_HOMEследует использовать вместо этого?
Pacerier
4
Диаграмма на этом сайте показывает взаимосвязь между JDK и JRE. docs.oracle.com/javase/8/docs
andrybak
1
Можно ли программно проверить, установлен ли путь Java как JRE или JDK?
Динеш Кумар П.
9

Просто (смените на свой jdk1.xxx_xx)

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

Амр Лотфи
источник
6

Мой JAVA_HOME указывает на JDK. Если по-прежнему не работает, проверьте, скачали ли вы ant для Java 7, а не для Java 6.

das_j
источник
5

Как правило, не имеет значения, указываете ли вы на JRE или JDK. Это зависит от приложения, которое его использует. В документации Ant говорится, что вы должны указать JDK, чтобы получить все возможности Ant.

Ян Мартишка
источник
2

как разработчик, вы должны указать свой JAVA_HOME на jdk, чтобы получить доступ к копилеру javac и т. д. Хорошо, если вы можете протестировать свою программу для работы в JRE. Если вы используете сервер приложений, вам часто также нужен JDK вместо JRE, но это зависит от конкретного сервера.

Акостадинов
источник
2

Вы можете использовать JDK или JRE, но:

JAVA_HOME используется программой запуска для поиска используемого JDK / JRE. (Рекомендуется использовать JDK, поскольку для некоторых задач требуются инструменты Java.)
. Настройка ANT_HOME

Михайлок
источник
0

Давайте будем простыми. Зайдите в настройки и найдите «Переменные среды». Когда появится окно переменных среды, просто создайте новую системную переменную, щелкнув NEW, а затем BROWSE DIRECTORY, пока не найдете путь для установки JDK. JDK должен быть установлен в программных файлах, и вы увидите папку JAVA, а внутри папки JDK и JRE ... Если вы пишете код, вы должны выбрать JDK !!! Не слушайте никого, утверждающего, что JRE будет достаточно ... НЕТ! Я не буду! Правильный каталог должен выглядеть так : C: \ Program Files \ Java \ jdk1.8.0_144, вот и все!

nexogen.io
источник
2
@Stephan Существующие ответы уже предоставляют информацию, на которую я потратил время. Это ваше оправдание для голосования против? Это проблема многих из этих потоков. Во-первых, тот факт, что был дан ответ на основной принцип, не означает, что ответ был правильно сформирован или даже полезен. Мой ответ совсем не такой, как предыдущие ответы. Ответ, который я предоставил, содержал точные инструкции
nexogen.io