Как исправить ошибку maven Переменная окружения JAVA_HOME не определена правильно?
Проблема:
Я получаю ошибку Maven "Переменная среды JAVA_HOME не определена правильно", когда я запускаю пакетное выполнение Inno. Тем не менее, я могу успешно работать за пределами Inno Setup (например, Command line, Batch file, Vbs). Я не знаю, как это сделать.
Inno Setup Invoked Prompt:
C:\>mvn -version
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
Регулярная командная строка:
C:\>mvn -version
C:\
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T01:09:06+05:30)
Maven home: C:\Program Files\apache-maven-3.5.0\bin\..
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_131\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
Команда Maven из InnoSetup:
[Files]
Source: "C:\@Setup\MavenInstaller.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Run]
Filename: "{cmd}"; Parameters: "/C ""{tmp}\MavenInstaller.bat"""
Команда Maven из пакетного файла:
mvn archetype:generate -DgroupId=com.mycompany.mycomponent-DartifactId=%APPLICATION_NAME% -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Настройка JAVA_HOME
Проверьте, установлен ли Java 1.8 или нет. Если он не установлен, установите его и установите JAVA HOME следующим образом.
SETX JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131"
SETX -m JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%path%;C:\Program Files\Java\jdk1.8.0_131\bin;" /f
Большое спасибо.
Ответы
Ответ 1
Команда SETX
не изменяет текущую среду.
Если вы запустите следующий пакетный файл:
setx AAA aaa
echo AAA=%AAA%
Он напечатает
AAA=
Итак, ваш командный файл ошибочен. Вы должны использовать set
:
set AAA=aaa
См. В чем разница между SETX и SET в переменных среды в Windows.
Ответ 2
Мой JDK установлен на C:\Program Files\Java\jdk1.8.0_144\
.
Я установил JAVA_HOME= C:\Program Files\Java\jdk1.8.0_144\
,
и я получал эту ошибку:
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
на C:\Program Files\Java\jdk1.8.0_144\jre
, проблема была исправлена.
Я не уверен, как.
Ответ 3
Следующее - лучший способ решить проблему, проверьте следующее на classpath:
-
Убедитесь, что системная переменная JAVA_HOME должна иметь значение до jdk, например C:\Program Files\Java\jdk1.7.0_80
, не C:\Program Files\Java\jdk1.7.0_80
сюда bin.
-
Потому что MAVEN будет искать jre, который находится в C:\Program Files\Java\jdk1.7.0_80
-
Установите %JAVA_HOME%\bin
в пути к классам.
Тогда попробуйте Maven версию.
Надеюсь, это поможет.
Ответ 4
Я удалил переменную JAVA_HOME и сохранил только переменные path и classpath, указав их соответственно на jdk и jre. Это сработало для меня.
Ответ 5
Я столкнулся с той же проблемой при использовании команды mvn clean package в ОС Windows
C:\eclipse_workspace\my-sparkapp>mvn clean package
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 из пользовательских переменных/системных переменных, затем перезапустил ноутбук, а затем снова установил переменную среды JAVA_HOME.
Надеюсь, это поможет вам.
Ответ 6
У меня была такая же проблема, когда моя системная переменная JAVA_HOME указывала на C:\Program Files\Java\jdk1.8.0_171\bin, и моя запись PATH состояла из% JAVA_HOME%.
Я изменил свою переменную JAVA_HOME, чтобы исключить папку bin (C:\Program Files\Java\jdk1.8.0_171), и добавил папку bin в системную переменную PATH:% JAVA_HOME%\bin,
Ответ 7
Настройка директории JAVA_HOME из командной строки у меня сработала!
Первый:
JAVA_HOME="C:\Program Files\Java\jdk1.8.0"
Или же:
export JAVA_HOME="C:\Program Files\Java\jdk1.8.0"
Тогда попробуйте:
mvn -version
чтобы убедиться, что вы не получите ту же ошибку. :)
Ответ 8
Я боролся с той же проблемой, и следующее сработало для меня.
Шаг 1: Проверьте настройки JAVA_HOME. Это может выглядеть примерно так:
JAVA_HOME="/usr/libexec/java_home"
Шаг 2: Обновите JAVA_HOME следующим образом:
$ vim .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
$ source .bash_profile
Шаг 3: В новой оболочке убедитесь, что команда Maven теперь работает правильно:
$ mvn -version
Если это решило проблему, вы должны получить ответ вроде:
Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800)
Maven home: /usr/share/maven
Java version: 1.7.0_05, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.2", arch: "x86_64", family: "mac"
Ответ 9
У меня была такая же проблема на Windows 7.
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
Решение оказалось очень простым - щелкните правой кнопкой мыши по ярлыку командной строки и выберите "Запуск от имени администратора". После этого проблема исчезла)
Ответ 10
Если все хорошее и все еще стоящее "JAVA_HOME" должно указывать на проблему JDK, а не JRE ", один раз проверьте пользовательские переменные java config и системные переменные java config. это решило мою проблему.
Ответ 11
В случае окон, если в пути к jdk есть пробел (например, "C:\Program Files\jdk"), он не работает, но если мы сохраняем jdk в месте, где нет места, он работает нормально. как ("C:\JDK")
Ответ 12
Это сработало для меня для Windows 10, Java 8_144.
Если путь содержит пробелы, используйте сокращенное имя пути. Например, C:\Progra ~ 1\Java\jdk1.8.0_65
Ответ 13
Очень распространенная ошибка, которую делают люди, заключается в том, что, когда они устанавливают JAVA_HOME
или JRE_HOME
, они устанавливают значение C:\Program Files\Java\jdk1.8.0_221\bin
или подобное.
Обратите внимание, что значения JAVA_HOME
и JRE_HOME
не должны содержать \bin
Ответ 14
у меня есть проблема ниже:
C:\Program Files\SolarWinds\DPA\iwc\tomcat\bin> startup.bat
JAVA_OPTS имеет значение -server -Xss256k -Xms256m -Xmx1024m -Dnet.sf.ehcache.skipUpdateCheck = true -Dorg.apache.commons.logging.LogFactory = org.apache.commons.logging.impl.LogFactoryImpl
Ни переменная окружения JAVA_HOME, ни переменная JRE_HOME не определены
Для запуска этой программы требуется хотя бы одна из этих переменных среды.
это я бегу в Solarwinds, когда я запускаю Java
кто-нибудь поможет проверить?