Maven指向JRE而不是jdk

时间:2013-07-12 17:20:53

标签: java maven

我一直在和一位同事一起解决我刚刚加入的一个新项目遇到的问题。长话短说,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文件。任何人对如何解决这个问题都有任何想法?

7 个答案:

答案 0 :(得分:20)

来自Maven Properties Guide:

  

$ {java.home}指定当前JRE_HOME环境的路径   使用相对路径获取例如:   $ {java.home} ../仓/ java.exe的

java.home属性与JAVA_HOME环境设置不同。它实际上是动态属性,显示哪个JRE正在运行您的代码。

尝试正确设置java.home属性并查看它是否有效。

答案 1 :(得分:2)

在Eclipse中,Window> Preferences> Java> Installed JRE>确保jdk存在并被选中。

如果jdk和jre都存在,则从已安装的JRE中删除jre。

答案 2 :(得分:2)

如果还显示编译器不可用,则可以按照以下方法在Eclipse IDE中将环境从jre替换为jdk:

  • (右键单击)your_project_name>构建路径>配置构建路径>库> (双击)JRE系统库>备用Jre:jdk 1.8>确定
  • 然后从库中的Installed JRES选项中选择jdk 1.8
  • 项目>清理
  • Maven>更新

答案 3 :(得分:0)

Windows CMD不刷新环境变量,您需要运行新实例以应用新环境设置并刷新新变量JAVA_HOME。

答案 4 :(得分:0)

获得JDK安装路径后:

  1. 右键单击桌面上的“我的电脑”图标,然后选择“属性”。
  2. 单击“高级”选项卡。
  3. 单击“环境变量”按钮。
  4. 在“系统变量”下,单击“新建”。
  5. 输入变量名称JAVA_HOME。
  6. 输入变量值(上述路径之一)作为Java Development Kit的安装路径。
  7. 单击“确定”。
  8. 点击Apply Changes。
  9. 您可能需要重新启动Windows。

    这对我有用。

答案 5 :(得分:0)

您可以在此窗口上对其进行修改:

enter image description here

答案 6 :(得分:0)

如果您将变量命名为javapath,也会发生此错误。如果您已指定,请尝试将其删除就像JAVA_HOME-> "C:\Program Files\Java\jdk1.8.0_171" 然后在路径-> "%JAVA_HOME%\bin"