Gradle java home error

In IntelliJ IDEA, using the Gradle window I am able to execute any and all Gradle tasks. However, when I try and execute the same tasks through the terminal window within the IDE, it hits me with the

In IntelliJ IDEA, using the Gradle window I am able to execute any and all Gradle tasks. However, when I try and execute the same tasks through the terminal window within the IDE, it hits me with the following error:

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

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

This occurs when using gradle and gradlew. In IntelliJ -> File -> Project Structure -> Project then SDK is set correctly to 1.8. Any suggestions for resolving this so I can use the terminal to execute Gradle tasks would be greatly appreciated.

asked Jan 3, 2017 at 18:16

hoobaka's user avatar

5

go to Java installation (C:Program FilesJavajdk ********) and copy the address file. Right click the «my computer» select «Properties» or go to «Control Panel > System and Security > System«. Select «Advanced system settings» then click the «Environment Variables» button. Click System Variables, New write Variable Name to «JAVA_HOME» and write Variable Value to Java installation folder address then click OK finish it.

dev.doc's user avatar

dev.doc

5693 gold badges12 silver badges18 bronze badges

answered Jan 3, 2017 at 19:02

Imesh Chamara's user avatar

3

My answer is for the case when Ubuntu app is installed over Windows. So in Windows, I can run Ubuntu terminal. My Android Studio is installed on Windows. And I try to run gradle from the Ubuntu terminal. I tried to set up JAVA_HOME to multiple addresses via Ubuntu terminal:
export JAVA_HOME=/mnt/c/…
But nothing helped, including java address provided by Ubuntu («whereis java» command):
/usr/share/java

Then I merely did the same using Windows terminal (Command Prompt). And gradle worked.

answered Dec 22, 2020 at 22:51

Liker777's user avatar

Liker777Liker777

2,1444 gold badges17 silver badges24 bronze badges

I have just installed gradle from the terminal

sudo apt-get install gradle

After finishing am trying to run the command

gradle -v

I get the following error

ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-7-oracle/jre/bin/java

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

When I run echo $JAVA_HOME I get

/usr/lib/jvm/java-7-oracle/jre/bin/java

So that’s the correct path
I edited my bashrc file
added the following lines

export JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre/bin/java
export JAVA_HOME

I still get the same error when I run gradle -v

Braiam's user avatar

Braiam

66.2k30 gold badges174 silver badges262 bronze badges

asked Jun 15, 2014 at 9:38

indago's user avatar

1

You have incorrectly set your JAVA_HOME variable. It shouldn’t be pointing to the jre but to the jdk.

Set your JAVA_HOME variable to /usr/lib/jvm/java-7-oracle.

answered Jun 15, 2014 at 11:47

jobin's user avatar

jobinjobin

26.7k16 gold badges99 silver badges116 bronze badges

1

This is the problem with the gradle which is appending /bin/java JAVACMD="$JAVA_HOME/bin/java" to your JAVA_HOME path in its scripts.
so go to your gradle-3.3/bin location of your gradle scripts and edit the gradle file using gedit.

    if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

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

this is the code snippet which is appending the java path hence results in an invalid path since you have already included /bin/java in your JAVA_HOME. so either change it here or remove the /bin/java from your JAVA_HOME path variable from the /etc/environment.
I have removed the /bin/java from the JAVA_HOME path and it worked fine for me.

answered Dec 18, 2017 at 6:31

vikas kumar's user avatar

Вопрос:

При попытке запустить gradle я получаю следующую ошибку:

# gradle

ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/default-java

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

Однако, когда я проверяю переменную JAVA_HOME, я получаю:

# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle

Мой JAVA_HOME определен в .bashrc, и я дважды проверил, что он установлен как источник.

Запуск java -version также подтверждает, что JAVA_HOME установлен правильно и находится на PATH.

# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

Я также проверил, что /usr/bin/java символические ссылки на /etc/alternatives/java, которые, в свою очередь, правильно символически ссылаются на /usr/lib/jvm/java-7-oracle/jre/bin/java

Кроме того, я проверил, что нет двух повторяющихся определений JAVA_HOME в .bash_profile или /etc/profile.

Итак, мой вопрос в том, как/почему Gradle найти /usr/lib/jvm/default-java, и что еще более важно, как я могу указать его на правильный каталог?

Другие программы, требующие JDK, работают нормально, поэтому я думаю, что это проблема Gradle. Я также попытался переустановить Gradle, который не имел никакого значения.

Я запускаю 64-битный Xubuntu (база Ubuntu 13.10)

Лучший ответ:

Оказывается, что конкретный двоичный файл Gradle, загруженный из репозитория Ubuntu 13.10, пытается экспортировать JAVA_HOME. Спасибо Lucas за это.

/usr/bin/gradle строка 70: ​​

export JAVA_HOME=/usr/lib/jvm/default-java

Комментируя эту строку, решает проблему, а Gradle находит правильный путь к двоичному файлу Java.

Если вы просто загрузите двоичный файл из своего сайта, у него нет этой проблемы,
Это проблема с версией репо Ubuntu. Также есть некоторые проблемы с версией 13.10.

Ответ №1

добавить символическую ссылку

sudo ln -s /usr/lib/jvm/java-7-oracle /usr/lib/jvm/default-java

Ответ №2

Решение состоит в том, чтобы сделать JAVA_HOME == dir выше bin, где javac живет как в

type javac

javac is /usr/bin/javac   # now check if its just a symlink

ls -la /usr/bin/javac

/usr/bin/javac -> /etc/alternatives/javac   # its a symlink so check again

ls -la /etc/alternatives/javac  # now check if its just a symlink

/etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

Хорошо, так, наконец, нашел корзину выше фактического Javac, так что сделайте это

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

Выше можно упростить и обобщить до

which javac >/dev/null 2>&1 || die "ERROR: no 'javac' command could be found in your PATH"
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac)  )))

Ответ №3

Для меня эта ошибка вызвана причиной Gradle, установленной как sudo, и я пытался запускать как пользователь по умолчанию Gradle.

Try:

sudo gradle -version

или

sudo gradle -v

Ответ №4

Попробуйте установить последнюю версию gradle,

sudo add-apt-repository ppa:cwchien/gradle

sudo apt-get update

sudo apt-get install gradle

Если мы установим из ubuntu repo, он установит старую версию (для меня это было gradle 1.4). В старой версии он устанавливает java home из gradle как export JAVA_HOME=/usr/lib/jvm/default-java. У последней версии этой проблемы нет.

Ответ №5

Вы export твой JAVA_HOME? Без экспорта настройка не будет распространяться на команды, запущенные внутри этой оболочки. Кроме того, java -version не использует JAVA_HOME, а использует первый java, найденный в вашем пути. Убедитесь, что ваш .bashrc выглядит примерно так:

JAVA_HOME=/path/to/java/home
export JAVA_HOME

Ответ №6

У меня была та же проблема, но я не нашел команду export в строке 70 в файле gradle для последней версии 2.13, но я понимаю глупую ошибку там, которая следует за

Если вы не найдете строку 70 с командой export в файле gradle в папке gradle/bin/, тогда проверьте свой ~/.bashrc, если вы найдете export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64/bin/java, а затем удалите /bin/java из эта строка, как JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64, а она в пути → > вместо этого export PATH=$PATH:$HOME/bin:JAVA_HOME/, будет export PATH=$PATH:$HOME/bin:JAVA_HOME/bin/java. Затем запустите source ~/.bashrc.

Причина в том, что если вы проверите свой файл gradle, вы найдете в строке 70 (если нет команды экспорта) или в строке 75,

JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Это означает, что /bin/java уже существует, поэтому его нужно вычесть из пути JAVA_HOME.

Это произошло в моем случае.

Ответ №7

Мне пришлось столкнуться с этой проблемой, когда я запустил следующую команду в Ubuntu:

ionic build android

Чтобы решить эту проблему, я сделал следующие шаги:

ln -sf /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java /usr/lib/jvm/default-java

Добавить JAVA_HOME в /etc/environment:

vi /etc/environment

Добавить

JAVA_HOME="/usr/lib/jvm/default-java"

После сохранения прочитайте:

source /etc/environment

Наконец, вы можете запустить команду сборки.

Ответ №8

Для меня была явная установка в разделе аргументов конфигурации внешних инструментов в Eclipse.

enter image description here

Ответ №9

Вы также можете перейти в папку bin внутри папки установки gradle и исправить параметр JAVA_HOME в файле gradle.bat.
В моем случае мой JAVA_HOME был установлен в c:Program filesjavabin
JAVA_HOME в gradle.bat был установлен в% JAVA_HOME%binjava.exe.

Я исправил JAVA_HOME в gradle.bat, и он сработал.

Спасибо!!!

Ответ №10

sudo ln -s /usr/lib/jvm/java-7-oracle/jre /usr/lib/jvm/default-java

Создайте символическую ссылку на каталог по умолчанию-java.

Вы можете найти свой каталог java на

readlink -f $(which java)
# outputs: /usr/lib/jvm/java-7-oracle/jre/bin/java
# Remove the last `/bin/java` and use it in above symbolic link command.

Ответ №11

У меня тоже была проблема с этим. Он сказал неправильный каталог, когда он был прав. Поэтому я просто создал локальную переменную с именем JAVA_HOME, исключающим final/bin/java. Это сработало для меня.

Ответ №12

В моем dockercontainer (минимальная проблема не найти java) была, что “which” не был установлен. Компиляция проекта с использованием gradlew, который в. /gradlew для поиска java
Установка, которая решила проблему.

Ответ №13

Если ваша среда GRADLE_HOME и JAVA_HOME установлены правильно, проверьте каталог JDK и убедитесь, что у вас есть файл java.exe по указанному ниже пути.

C:Program Files (x86)Javajdk1.8.0_181bin

Как ошибка упоминается в файле gradle.bat

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

Он не может найти вашу установку Java. Так что найдите и установите

java.exe

в %JAVA_HOME%/bin если все правильно.

Это работает для меня (моя учетная запись была отключена клиентом, и его администратор удалил java.exe из моей директории.)

Ответ №14

[Windows] Как уже говорилось, похоже, что .bat -file пытается найти java.exe из %JAVA_HOME%/bin/java.exe поэтому он не находит его, так как bin повторяется дважды в пути. Извлеките этот дополнительный /bin из gradle.bat.

Gradle

Ответ №15

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

export JAVA_HOME="path_to_java_home"

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

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

readlink -f $(which java)

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

Ответ №16

В моем Ubuntu у меня 2 дня болит голова по этому вопросу.

Шаг 1. Введите в терминале, whereis java тогда он будет отображать что-то вроде этого

java: /usr/bin/java /etc/java /usr/share/java /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/share/man/man1/java.1.gz

Шаг 2. /usr/lib/jvm/java-8-openjdk-amd64/bin/java путь: /usr/lib/jvm/java-8-openjdk-amd64/bin/java

исключить bin/java

ваш JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Gradle error minsdk in manifest
  • H cdm8045 error 13
  • Gpu error windows перезапустила видеодрайвер league of legends
  • Gzinflate data error php
  • Gpu error failed to allocate ethash dag buffer

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии