问题:
当我运行Inno Setup批处理执行时,我收到Maven错误“The 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 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"
InnoSetup的Maven命令:
[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主目录。
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
非常感谢。
11条答案
按热度按时间t1qtbnec1#
以下是解决该问题的最佳方法,请检查类路径中的以下内容:
1.确保JAVA_HOME系统变量必须有Until JDK,例如
C:\Program Files\Java\jdk1.7.0_80
,不要在这里附加bin。1.因为MAVEN将查找
C:\Program Files\Java\jdk1.7.0_80
下的jre1.在类路径中设置
%JAVA_HOME%\bin
。然后试试Maven版本。
希望这能有所帮助。
e5nqia272#
我的JDK安装在
C:\Program Files\Java\jdk1.8.0_144\
。我设置了
JAVA_HOME= C:\Program Files\Java\jdk1.8.0_144\
,并收到以下错误:当我将
JAVA_HOME
更改为C:\Program Files\Java\jdk1.8.0_144\jre
时,问题得到解决。我不知道是怎么回事。
o2g1uqev3#
这就是我在Windows 10上修复这个问题的方法:
我的JDK位于
C:\Program Files\Java\jdk-11.0.2
中,我的问题是Program Files
中的空间。如果我使用set JAVA_HOME="C:\Program Files\Java\jdk-11.0.2"
设置JAVA_HOME,则Maven的双引号有问题:将
Program Files
称为PROGRA~1
也无济于事。解决方案是在JAVA_HOME中使用ProgramFiles变量:hvvq6cgz4#
人们犯的一个非常常见的错误是,当他们设置
JAVA_HOME
或JRE_HOME
时,他们将值设置为C:\Program Files\Java\jdk1.8.0_221\bin
或类似的值。请注意,
JAVA_HOME
和JRE_HOME
值不应包含\bin
njthzxwz5#
SETX
命令不会修改当前环境。如果运行以下批处理文件:
它将打印出来
因此,您的批处理文件是错误的。您必须使用
set
:参见What is the difference between SETX and SET in environment variables in Windows。
wlwcrazw6#
从环境变量中删除JAVA_HOME和JAVA_JRE已解决此问题。
mftmpeh87#
我删除了JAVA_HOME变量,只保留了PATH和CLASSPATH变量,将它们分别指向JDK和JRE。这对我很管用。
l3zydbqr8#
我在Windows操作系统中使用MVN CLEAN PACKET命令时也遇到了同样的问题
我通过从用户变量/系统变量中删除JAVA_HOME环境变量,然后重新启动笔记本电脑,然后再次设置JAVA_HOME环境变量,解决了这个问题。
希望它能对你有所帮助。
tyky79it9#
从命令行设置JAVA_HOME目录对我很有效!
首先:
或者:
然后尝试:
以确保您不会收到相同的错误。:)
xkftehaa10#
当我的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文件夹添加到系统路径变量:%JAVA_HOME%\bin。
gc0ot86w11#
我在Windows 7上也遇到了同样的问题。
事实证明,解决方案非常简单--右击命令提示符快捷方式,然后选择“以管理员身份运行”。在那之后,问题消失了。)