Должен ли я использовать JAVA_HOME для JDK OpenJDK или JRE OpenJDK? - PullRequest
0 голосов
/ 27 февраля 2020

Во многих недавних ситуациях, но прямо сейчас я попытался использовать установщик, который выдает ошибку и говорит что-то вроде «Java не установлен», даже если JAVA_HOME установлен на JDK, установленный установщиком AdoptOpenJDK для Windows 10 64х. Я не мог найти способ исправить это, в любом случае сегодня я попытался установить Netbeans 8.2, и он показал эту ошибку, но я обнаружил, что вы можете передать аргумент установщику (--javahome), после чего сообщение об ошибке изменилось с "JDK не был найден (в вашей машине) "до" Не удалось найти JRE (в указанном месте) ", что было еще более странно. Затем я передал JRE в качестве javahome, и это сработало, что меня удивило, в установщике вы можете выбрать, какой jdk должен использовать netbeans, и он правильно отображает установленный jdk. Оооо ... почему это происходит?

Редактировать: JAVA_HOME - это "C: \ Program Files \ AdoptOpenJDK \ jdk-13.0.2.8-hotspot \", и я не менял его на время при установке

аргумент --javahome был "C: \ Program Files \ AdoptOpenJDK \ jdk8u242-b08-jre", и после установки я понял, что его нет в Path

Но я на 100% уверен, что "C: \ Program Files \ AdoptOpenJDK \ jdk-13.0.2.8-hotspot \" был в пути, что странно, потому что предположительно в соответствии с тем, что я читал, установщик AdoptOpenJDK устанавливает JDK с JRE внутри? или, по крайней мере, JDK не должен быть надмножеством JRE?

Редактировать 2: Я оставил путь JDK как JAVA_HOME из-за этого ответа. Должен ли JAVA_HOME указывать на JDK или JRE?

1 Ответ

1 голос
/ 27 февраля 2020

Ваш фактический вопрос неясен, но это похоже на проблему XY. Ваша настоящая проблема в том, что у вас были проблемы с установкой NetBeans 8.2 (верно?), Но вы ошибочно пытаетесь прийти к выводу, что причина была каким-то образом связана с настройкой JAVA_HOME . Это не так.

Во-первых, со страницы загрузки NetBeans 8.2 , обратите внимание, что " JDK 8 требуется для установки и запуска Java SE, Java EE и все пакеты NetBeans. NetBeans 8.2 не работает на JDK 9 или новее". Таким образом, по крайней мере, часть вашей проблемы заключается в том, что вы пытались использовать JDK 13 с NetBeans 8.2. Это просто не сработает.

Во-вторых, вам не нужно устанавливать переменную среды JAVA_HOME для работы NetBeans 8.2. Я просто намеренно саботировал настройку JAVA_HOME , и NetBeans 8.2 перезагружается и работает просто отлично. Это хорошо, потому что вы можете на законных основаниях установить JAVA_HOME в произвольный JDK по какой-то другой причине, совершенно не связанной с NetBeans, и это может привести к поломке NetBeans 8.2, если он полагается на JAVA_HOME .

В-третьих, NetBeans также не заботится о настройке PATH . (Кроме того, NetBeans игнорируя JDK_HOME и PATH означает, что вы можете установить разные версии NetBeans, каждая из которых использует другой JDK, и безопасно запускать их одновременно.)

Чтобы явно указать JDK, который должна использовать ваша установка NetBeans 8.2:

  • Найдите файл netbeans.conf . Это текстовый файл, который находится в каталоге et c в вашей установке NetBeans 8.2.
  • Откройте этот файл в любом текстовом редакторе и найдите строку, содержащую текст netbeans_jdkhome .
  • Если строка начинается с # (обозначает строку с комментариями), удалите ее, а затем установите netbeans_jdkhome, чтобы указать путь к вашей установке JDK 8. На моей машине Windows 10 эта строка выглядит следующим образом: netbeans_jdkhome="C:\Java\jdk1.8.0_221".
  • Убедитесь, что у вас есть ровно одна строка без комментария, устанавливающая значение netbeans_jdkhome (которое будет в вашем каталоге установки JDK 8), затем сохраните изменения в netbeans.conf и (пере) запустите NetBeans 8.2.

Надеюсь, это все, что вам нужно сделать, чтобы решить вашу проблему, но если нет, обновите ваш вопрос, чтобы уточнить точную проблему, которую необходимо решить.

...