Как исправить ошибку maven переменная среды JAVA HOME не определена правильно?

вопрос:

я получаю ошибку Maven "переменная среды JAVA_HOME не определена правильно", когда я запускаю выполнение пакета установки Inno. Тем не менее, я могу успешно работать вне Inno Setup.(e.G Командная строка, пакетный файл, Vbs). Я не в состоянии определить проблему.

Inno Setup Вызвал Приглашение:

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 Filesapache-maven-3.5.0bin..
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: C:Program FilesJavajdk1.8.0_131jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

Команда Maven из InnoSetup:

[Files]
Source: "C:@SetupMavenInstaller.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 FilesJavajdk1.8.0_131"
SETX -m JAVA_HOME "C:Program FilesJavajdk1.8.0_131"
REG ADD "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /v Path /t REG_SZ /d "%path%;C:Program FilesJavajdk1.8.0_131bin;" /f

Большое Спасибо.

7 ответов


на SETX команда не изменяет текущую среду.

если вы запустите следующий пакетный файл:

setx AAA aaa
echo AAA=%AAA%

Он будет печатать

AAA=

Итак, ваш пакетный файл ошибочен. Вы должны использовать set:

set AAA=aaa

посмотреть в чем разница между SETX и SET в переменных среды в Windows.


мой 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 to C:\Program Files\Java\jdk1.8.0_144\jre проблема была исправлена.
Я не знаю как.


Я удалил переменную JAVA_HOME и сохранил только переменные path и classpath, указав их на JDK и jre соответственно. У меня получилось.


я столкнулся с той же проблемой при использовании mvn чистый пакет команда в ОС 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 переменной окружения снова.

надеюсь, это поможет вам.


следующий лучший способ получить проблему, проверьте следующее на classpath:

  1. убедитесь, что системная переменная JAVA_HOME должна иметь до jdk e.g C:\Program файлы\Java\jdk1.7.0_80, не добавляйте сюда bin.

  2. потому что MAVEN будет искать jre, который находится под C:\Program файлы\Java\jdk1.7.0_80

  3. установить %JAVA_HOME%\bin в пути к классам .

затем попробуйте версию Maven .

надеюсь, это поможет .


У меня была такая же проблема, когда моя системная переменная JAVA_HOME указывала на C:\Program файлы\Java\jdk1.8.0_171\bin и моя запись пути состояли только из %JAVA_HOME%.

Я изменил свою переменную JAVA_HOME, чтобы исключить папку bin (C:\Program файлы\Java\jdk1.8.0_171) и добавил папку bin в переменную системного пути: %JAVA_HOME%\bin,


я боролся с той же проблемой, и следующие работал для меня.

Шаг 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"