JAVA_HOME установлен в неправильный каталог

13

Привет, друзья Ubuntu,

Я пытаюсь научиться писать модификации для Minecraft. Чтобы следовать учебнику, который я использую, мне нужно запустить "gradlew". Команда выглядит следующим образом

./gradlew setupDecompWorkspace eclipse

Это дает следующее

ERROR: JAVA_HOME is set to an invalid directory: /usr/local/java/jdk1.8.0_20

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Очевидно, я не знаю, что делать или даже что это значит. Буду признателен за любую оказанную помощь.

Joseph_carp
источник

Ответы:

31

Перед запуском команды попробуйте ввести:

export JAVA_HOME="path_to_java_home"

Где path_to_java_home - это папка, в которой находится ваш bin / java.

Если Java установлен правильно, вы можете найти его местоположение, используя команду:

readlink -f $(which java)

Не забудьте удалить bin / java в конце пути, поместив его в JAVA_HOME

Андрей Онищук
источник
Хорошо, я сделал то, что вы сказали, однако, он дает те же результаты, за исключением того, что путь изменился.
Joseph_carp
1
Если вы запускаете $JAVA_HOME/bin/java -versionпосле экспорта, он работает нормально, показывая версию Java?
Андрей Онищук
$ JAVA_HOME / bin / java
-version возвращает
2
Кажется, ваш экспорт не так. Пожалуйста, покажите команду экспорта, которую вы использовали. А также покажу readlink -f $(which java)вывод
Андрей Онищук
5
Вы должны установить его в папку , где бен / Ява означающего export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"неexport JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java"
Андрей Онищук
13

Чтобы сделать это автоматически в Linux / Ubuntu, добавьте эти строки в конце вашего .bashrc:

JAVA_HOME=$(dirname $( readlink -f $(which java) ))
JAVA_HOME=$(realpath "$JAVA_HOME"/../)
export JAVA_HOME

Это получает исполняемый файл Java, а затем поднимается на уровень каталога

Чтобы указать версию / исполняемый файл java по умолчанию в Debian / Ubuntu, выполните это один раз :

sudo update-alternatives --config java

Это основано на предыдущем ответе Андрея Онищука (спасибо!)

Тудор Илисой
источник
Его работа, как шарм. Это решило мою проблему через 3 дня.
Хитеш Сарсава
1

Попробуйте отредактировать / usr / bin / gradle

Прокомментируйте строку "export JAVA_HOME = / usr / lib / jvm / default-java" с помощью #

это: #export JAVA_HOME = / usr / lib / jvm / default-java

starwatcher
источник
1

Получите ваш путь Java с помощью команды

whereis java

Ниже приведен возможный вывод в зависимости от версии Java по умолчанию

java: /usr/bin/java /usr/share/java /usr/lib/jvm/jdk1.8.0_241/jre/bin/java

Maven нужно выбрать местоположение Java (home), чтобы вы могли экспортировать путь Java, используя следующую команду

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre

Это позволит Maven выбрать версию и местоположение Java в файле / etc / environment

При желании вы можете добавить это в / etc / environment вручную, используя следующую команду

sudo nano /etc/environment

и редактировать JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre/

Хосе Мхланга
источник