Maven 没有正确挑选JAVA_HOME

2022-09-01 06:52:10

我在Windows环境中,并使用maven来编译我的项目。虽然我刚刚创建了该项目并添加了各种语言的依赖项。

当我添加它们时,maven开始抱怨丢失,所以我在下面添加了我的:tools.jarpom.xml

<dependency>
  <groupId>com.sun</groupId>
  <artifactId>tools</artifactId>
  <version>1.6</version>
  <scope>system</scope>
  <systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>

当我运行maven安装时,我得到了一个错误丢失的jar,如下所示:

[ERROR] Failed to execute goal on project GApp: Could not resolve dependencies for project GApp:GApp:war:0.0.1-SNAPSHOT: Could not find artifact com.sun:tools:jar:1.6 at specified path C:\Program Files\Java\jre6\lib\tools.jar -> [Help 1]

问题是 is in “” 并且在环境变量中设置正确,但 maven 仍在 jre 文件夹中查找,如错误消息 “” 所示。tools.jarC:\Program Files\Java\jdk1.6.0_26\libJAVA_HOMEC:\Program Files\Java\jre6\lib\tools.jar

C:\>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_26

有趣的是:当我在依赖关系中设置完整路径时,它工作得很好。但我不想硬编码它。

<dependency>
  <groupId>com.sun</groupId>
  <artifactId>tools</artifactId>
  <version>1.6</version>
  <scope>system</scope>
  <systemPath>C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar</systemPath>
</dependency>

有人能为此提出任何动态解决方案吗?


答案 1

这是Eclipse Maven支持中的一个错误。Eclipse 不支持 Maven 规范中的所有全局 Maven 属性。

根据规格:

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

至少在Eclipse 4.3.1中情况并非如此,这里总是指向用于启动Eclipse的JRE,而不是构建JRE。java.home

要解决此问题,您需要使用JDK中的JRE启动Eclipse,方法是将类似如下的内容添加到(之前!):eclipse.ini-vmargs

-vm
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll

答案 2

看来你的JAVA_HOME被设置为指向日食中的JRE。


推荐