#java #maven #ubuntu-18.04
#java #maven #ubuntu-18.04
Вопрос:
Я играл с некоторыми переменными среды в Ubuntu 18.04.5, пытаясь заставить их не сбрасываться каждый раз, когда я повторно открываю терминал.
Однако теперь Maven реагирует на каждую команду с этой ошибкой:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
Я почти уверен, что мой $JAVA_HOME
указывает на правильный каталог, потому что команда echo $JAVA_HOME
возвращает:
/usr/lib/jvm/java-11-openjdk-amd64
И команда $JAVA_HOME/bin/java --version
возвращает:
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8 10-post-Ubuntu-0ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.8 10-post-Ubuntu-0ubuntu118.04.1, mixed mode, sharing)
Перед этой ошибкой я добавил эти строки в /etc/environment
:
export JAVA14="/usr/lib/jvm/jdk-14"
export JAVA11="/usr/lib/jvm/java-11-openjdk-amd64"
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
И следующие строки в ~/.bashrc
:
source /etc/environment
Кроме того, после некоторого редактирования я вернул все, как это было раньше, и команда sudo update-alternatives --config java
возвращает следующее:
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64 1 manual mode
2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
Итак, выбран правильный путь, а также я не изменил никаких других update-alternatives
конфигураций.
Что я могу сделать, чтобы Maven снова увидел $ JAVA_HOME?
Редактировать:
Я исправил эту проблему, непосредственно отредактировав /usr/share/maven/bin/mvn
скрипт и жестко запрограммировав путь к java
исполняемому файлу в JAVACMD
переменной. Тем не менее, я все еще заинтересован в нормальном решении этой проблемы.
Комментарии:
1. можете ли вы предоставить нам вывод команды
mvn -version
, которая отобразит Java_home, который maven получает во время своего процесса?2. Он отображает ту же ошибку:
The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this program NB: JAVA_HOME should point to a JDK not a JRE
3. что вы получите, если запустите «java -version»?
4. Вы добавили к этому JAVA_HOME путь?
5. Запуск
java --version
дает тот же результат, что и$JAVA_HOME/bin/java --version
.
Ответ №1:
У меня пока нет прав на комментарий (или я бы сделал это, надеюсь, полезным предположением в комментарии), но вы должны проверить $HOME /.mvnrc (или эквивалент), чтобы увидеть, установлен ли там JAVA_HOME.