Maven指向JRE而不是jdk
我一直在与一位同事一起解决我刚刚加入的一个新项目遇到的问题。 长话短说,maven没有正确构建我的.war文件。 当我给我的同事我的战争文件时,他遇到了同样的问题,当他给我他编译的.war文件时,一切正常。 我们都在使用相同的来源。 因此,我正在尝试正确设置maven(与他相同),我们现在都拥有相同版本的maven。 但是,我认为maven正在错误地查看java_home。
当我执行mvn -version命令时,我得到以下内容:
C:\java\KME_workspace\CU-KME>mvn -version Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500) Maven home: C:\java\tools\apache-maven-3.0.4 Java version: 1.6.0_45, vendor: Sun Microsystems Inc. Java home: C:\java\jdks\jdk1.6.0_45\jre Default locale: en_US, platform encoding: Cp1252 OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
我的系统的JAVA_HOME变量正确设置为C:\ java \ jdks \ jdk1.6.0_45。
任何人都知道我的maven正在看jre,我该如何正确地将它设置回JDK? 我也可能正确地看待问题,所以如果你有任何想法,那就太好了。
谢谢。
正如一些人所指出的那样,在maven版本的java家中的JRE引用是我的一个红鲱鱼兔洞。 经过进一步测试,我有一些新的有趣信息。 我直接从命令行运行maven命令。 我使用eclipse从我们的svn存储库中检出代码,并尝试在该代码上运行maven包,并且.war无法正确构建。 但是,如果我在eclipse中将团队导出到新目录,并在其上运行maven包,它会构建.war罚款并且工作正常。 据我了解,eclipse中的团队导出会删除导出目录中的所有subversion文件。 任何人对如何解决这个问题都有任何想法?
来自Maven Properties Guide:
$ {java.home}指定当前JRE_HOME环境的路径,使用相对路径获取例如:$ {java.home} ../ bin / java.exe
java.home
属性与JAVA_HOME环境设置不同。 它实际上是动态属性,显示哪个JRE正在运行您的代码。
尝试正确设置java.home属性,看看它是否有效。
在Eclipse中,Window> Preferences> Java> Installed JREs>确保jdk存在并被选中。
如果jdk和jre都存在,则从Installed JRE中删除jre。
Windows CMD不刷新环境变量,您需要运行新实例以应用新环境设置并刷新新变量JAVA_HOME。
获得JDK安装路径后:
- 右键单击桌面上的“我的电脑”图标,然后选择“属性”。
- 单击“高级”选项卡。
- 单击“环境变量”按钮。
- 在“系统变量”下,单击“新建”。
- 输入变量名称JAVA_HOME。
- 输入变量值(上面提到的路径之一)作为Java Development Kit的安装路径。
- 单击确定。
- 单击应用更改。
您可能需要重新启动Windows。
这对我有用。
如果它还显示编译器不可用,您可以在Eclipse IDE中将环境从jre替换为jdk,如下所示:
- (右键单击)your_project_name>构建路径>配置构建路径>库>(双击)JRE系统库>备用Jre:jdk 1.8> ok
- 然后从Libraries中的Installed JRES选项中选择jdk 1.8
- 项目>清洁
- Maven>更新