如何修复maven错误JAVA_HOME环境变量定义不正确?
问题: 当我运行Inno setup批处理执行时,出现Maven错误“JAVA_HOME环境变量定义不正确”。但是,我能够在Inno安装程序之外成功运行(例如命令行、批处理文件、Vbs)。我无法确定这个问题 Inno安装程序调用提示:如何修复maven错误JAVA_HOME环境变量定义不正确?,maven,inno-setup,Maven,Inno Setup,问题: 当我运行Inno setup批处理执行时,出现Maven错误“JAVA_HOME环境变量定义不正确”。但是,我能够在Inno安装程序之外成功运行(例如命令行、批处理文件、Vbs)。我无法确定这个问题 Inno安装程序调用提示: C:\>mvn -version The JAVA_HOME environment variable is not defined correctly This environment variable is needed to run this prog
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"
[Files]
Source: "C:\@Setup\MavenInstaller.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Run]
Filename: "{cmd}"; Parameters: "/C ""{tmp}\MavenInstaller.bat"""
mvn archetype:generate -DgroupId=com.mycompany.mycomponent-DartifactId=%APPLICATION_NAME% -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
常规命令提示:
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"
[Files]
Source: "C:\@Setup\MavenInstaller.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Run]
Filename: "{cmd}"; Parameters: "/C ""{tmp}\MavenInstaller.bat"""
mvn archetype:generate -DgroupId=com.mycompany.mycomponent-DartifactId=%APPLICATION_NAME% -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
来自InnoSetup的Maven命令:
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"
[Files]
Source: "C:\@Setup\MavenInstaller.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Run]
Filename: "{cmd}"; Parameters: "/C ""{tmp}\MavenInstaller.bat"""
mvn archetype:generate -DgroupId=com.mycompany.mycomponent-DartifactId=%APPLICATION_NAME% -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
批处理文件中的Maven命令:
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"
[Files]
Source: "C:\@Setup\MavenInstaller.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Run]
Filename: "{cmd}"; Parameters: "/C ""{tmp}\MavenInstaller.bat"""
mvn archetype:generate -DgroupId=com.mycompany.mycomponent-DartifactId=%APPLICATION_NAME% -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
设置JAVA_主页
检查是否安装了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
非常感谢。SETX命令不会修改当前环境 如果运行以下批处理文件:
setx AAA aaa
echo AAA=%AAA%
它会打印出来
AAA=
所以你的批处理文件是错误的。您必须使用设置:
set AAA=aaa
请参阅。我的JDK安装在C:\Program Files\Java\jdk1.8.0\u 144\
我已经设置了JAVA\u HOME=C:\Program Files\JAVA\jdk1.8.0\u 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\u HOME
更改为C:\Program Files\JAVA\jdk1.8.0\u 144\jre
时,问题得到了解决。
我不知道怎么做。我删除了JAVA_HOME变量,并通过分别指向jdk和jre只保留了path和classpath变量。这对我很有效。在Windows操作系统中使用mvn clean package命令时,我遇到了同样的问题
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环境变量,解决了这个问题
希望它能对您有所帮助。当我的JAVA\u HOME系统变量指向C:\Program Files\JAVA\jdk1.8.0\u 171\bin时,我遇到了同样的问题,我的路径条目只有%JAVA\u HOME%
我更改了JAVA_HOME变量以排除bin文件夹(C:\Program Files\JAVA\jdk1.8.0_171),并将bin文件夹添加到系统路径变量:%JAVA_HOME%\bin,我也遇到了同样的问题,以下方法对我有效
步骤1:检查JAVA_主页设置。它可能看起来像:
JAVA_HOME="/usr/libexec/java_home"
步骤2:更新JAVA_HOME,如下所示:
$ vim .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
$ source .bash_profile
步骤3:在新的shell中,检查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"
以下是解决此问题的最佳方法,请在类路径上检查以下内容:
确保JAVA_HOME系统变量必须在jdk之前具有,例如C:\Program Files\JAVA\jdk1.7.0_80
,不要在此处附加bin
因为MAVEN将在C:\ProgramFiles\Java\jdk1.7.0\U 80下查找jre
在类路径中设置%JAVA\u HOME%\bin
然后试试Maven版本
希望能有所帮助。我在Windows7上也遇到过同样的问题
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_主目录对我来说很有效
第一:
JAVA_HOME="C:\Program Files\Java\jdk1.8.0"
或:
然后尝试:
mvn -version
以确保不会出现相同的错误。:) 在windows中,如果jdk路径中有任何类似(“C:\Program Files\jdk”)的空间,那么它就不工作,但是如果我们将jdk放在一个没有空间的位置,那么它就可以像(“C:\jdk”)一样正常工作。人们经常犯的一个错误是,当他们设置JAVA\u HOME
或JRE\u HOME
时,他们将值设置为C:\ProgramFiles\Java\jdk1.8.0\u 221\bin
或类似值
请注意JAVA\u HOME
和JRE\u HOME
值不应包含\bin
似乎Maven不喜欢JAVA\u HOME
变量有多个值。在我的例子中,错误是由于存在附加路径C:\Program Files\Java\jax-rs
(整个路径是C:\Program Files\Java\jdk1.8.0;C:\Program Files\Java\jax-rs
)
因此,我删除了JAVA\u HOME
变量,并用单个值C:\Program Files\JAVA\jdk1.8.0\u 20
重新创建了它,这就是我在Windows 10上解决此问题的方法:
我的JDK位于C:\Program Files\Java\JDK-11.0.2
中,我遇到的问题是程序文件中的空间。如果我使用set JAVA\u HOME=“C:\Program Files\JAVA\jdk-11.0.2”
设置JAVA\u HOME,则Maven在双引号方面存在问题:
C:\Users>set JAVA_HOME="C:\Program Files\Java\jdk-11.0.2"
C:\Users>echo %JAVA_HOME%
"C:\Program Files\Java\jdk-11.0.2"
C:\Users>mvn -version
Files\Java\jdk-11.0.2""=="" was unexpected at this time.
将程序文件
称为PROGRA~1
也没有帮助。解决方案是在JAVA_HOME中使用PROGRAMFILES变量:
C:\Users>echo %PROGRAMFILES%
C:\Program Files
C:\Program Files>set JAVA_HOME=%PROGRAMFILES%\Java\jdk-11.0.2
C:\Program Files>echo %JAVA_HOME%
C:\Program Files\Java\jdk-11.0.2
C:\Program Files>mvn -version
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T17:06:16+02:00)
Maven home: C:\apache-maven-3.6.2\bin\..
Java version: 11.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-11.0.2
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
当您设置java home变量时,请尝试将path till作为JDK而不是java的目标。设置路径如下:C:\Program Files\Java\jdk1.8.0\U 231
如果将路径设置为C:\Program Files\Java,它将运行Java,但不会运行maven。以下步骤为我解决了这个问题
- 将zip文件复制到Program Files文件夹并解压缩到“apache-maven-3.6.3-bin”
- 然后复制路径,
C:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3
- 然后使用上述路径在环境变量中创建新的MAVEN_HOME变量
还补充说,
C:\Program Files\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin
“PATH”变量的地址
对我来说很好
注意-不要在上面提到的路径上加双引号。否则当你跑的时候
mvn -version
它将给出以下错误
Files\java\jdk1.8.0\u 201\jre”“==”“
此时意外
从环境变量中删除JAVA_HOME和JAVA_JRE解决了这个问题。我通过以下步骤解决了这个问题:
卸载jdkjava
再