20

我一直在与一位同事一起解决我刚刚加入的一个新项目中遇到的问题。长话短说,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 home 中的 JRE 引用是一个红鲱鱼兔子洞。经过进一步测试,我得到了一些新的有趣信息。我直接从命令行运行 maven 命令。我使用 eclipse 从我们的 svn 存储库中检查代码,并尝试在该代码上运行 maven 包,但 .war 没有正确构建。但是,如果我在 eclipse 中将团队导出到一个新目录,并在其上运行 maven 包,它会构建 .war 并完美运行。据我了解,eclipse中的团队导出会删除导出目录中的所有颠覆文件。有人对如何解决这个问题有任何想法吗?

4

7 回答 7

26

Maven 属性指南:

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

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

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

于 2013-07-12T17:27:50.987 回答
3

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

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

于 2017-03-06T06:42:23.957 回答
3

如果它还显示编译器不可用,您可以在 Eclipse IDE 中将环境从 jre 替换为 jdk,如下所示:

  • (右键单击)your_project_name > Build Path > Configure Build Path > Libraries >(双击)JRE System Libraries > Alternate Jre : jdk 1.8 >ok
  • 然后从库中的已安装 JRES 选项中选择 jdk 1.8
  • 项目 > 清洁
  • Maven > 更新
于 2018-08-07T10:11:58.640 回答
0

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

于 2015-09-01T09:27:02.670 回答
0

获得 JDK 安装路径后:

  1. 右键单击桌面上的“我的电脑”图标,然后选择“属性”。
  2. 单击高级选项卡。
  3. 单击环境变量按钮。
  4. 在系统变量下,单击新建。
  5. 输入变量名称为 JAVA_HOME。
  6. 输入变量值(上述路径之一)作为 Java 开发工具包的安装路径。
  7. 单击确定。
  8. 单击应用更改。

您可能需要重新启动 Windows。

这对我有用。

于 2017-10-23T08:51:26.827 回答
0

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

在此处输入图像描述

于 2019-02-08T02:08:15.687 回答
0

如果您有名为 的变量,也会发生此错误javapath。尝试删除它,如果您已经指定例如 JAVA_HOME ->"C:\Program Files\Java\jdk1.8.0_171" 然后在 Path ->"%JAVA_HOME%\bin"

于 2020-03-31T20:37:59.117 回答