当前位置: 首页 > 面试题库 >

Maven没有正确选择JAVA_HOME

松元明
2023-03-14
问题内容

我在Windows环境中,并使用Maven编译我的项目。尽管我刚刚创建了项目并添加了各种库的依赖项。

当我添加它们时,maven开始抱怨丢失tools.jar,因此我在下面添加了以下内容pom.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]

问题是,tools.jar它位于“ C:\Program Files\Java\jdk1.6.0_26\lib”中,并且已在JAVA_HOME环境变量中正确设置,但是maven仍在jre文件夹中查找错误消息“
C:\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>

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


问题答案:

这是Eclipse Maven支持中的一个错误。根据
Maven规范,

Eclipse不支持所有全局Maven属性。

根据规格:

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

至少在Eclipse 4.3.1中不是这样,这里java.home始终指向 用于启动EclipseJRE,而 不是构建JRE。

要解决此问题,您需要使用JDK中的JRE来启动Eclipse,方法是在eclipse.inibefore -vmargs!)中添加以下内容:

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


 类似资料:
  • 我是在windows环境和使用maven编译我的项目。虽然我刚刚创建了项目并添加了各个Libaries的依赖项。 当我添加它们时,maven开始抱怨缺少,所以我在中添加了以下内容: 当我运行maven安装时,我得到了一个丢失的jar的错误,如下所示: 问题是在“”中,并且在环境变量中正确设置,但是maven仍然在jre文件夹中查找,错误消息为“”。 有趣的是:当我在dependency中设置完整路

  • 我在Wordpress中创建了自定义图像大小,用于Wordpress默认安装的响应图像插件。我添加的图像大小为: 然后,我使用metabox.io插件从PHP构建图像,并将加载的图像设置为显示为纵向案例研究lg。然后,我使用metabox.io中的函数加载srcset,并创建了我想要更改图像的自定义大小。 结果如下所示: 我的问题是,它现在正在加载宽度和高度为768x512的风景图像,而不是加载5

  • 为了解决这个问题,我尝试了许多JDK版本,但似乎无论我使用哪个java,结果总是一样的。 MavenReportException:创建存档时出错:无法找到javadoc命令:未正确设置环境变量JAVA_HOME。 我跑了: 导出JAVA_HOME=/usr/lib/jvm/JAVA-8-openjdk-amd64 : MavenReportException:创建存档时出错:无法找到javado

  • 我正在尝试为我的单元测试分离jacoco覆盖率分析的生成。 我已经创建了(在我的pom.xml中)一个特定于它的配置文件,因为我不想在我的所有环境中运行测试。 这是我的pom.xml中的概要文件部分: 第一次按此顺序运行命令mvn清洁mvn测试mvn雅各科:报告 运行命令mvn test后,Jacoco在属性"jacoco.ut.execution.data.file"指定的位置正确生成包含覆盖率

  • 为了优化存储,在任何情况下均应使用最精确的类型。例如,如果列的值的范围为从1到99999,若使用整数,则MEDIUMINT UNSIGNED是好的类型。在所有可以表示该列值的类型中,该类型使用的存储最少。 用精度为65位十进制数(基于10)对DECIMAL列进行所有基本计算(+、-、*、/)。参见11.1.1节,“数值类型概述”。 使用双精度操作对DECIMAL值进行计算。如果准确度不是太重要或如

  • 校验者: 翻译者: @李孟禹 通常,解决机器学习问题的最困难的部分可能是找到恰当的的评估器(estimator)。 不同的评估器更适合不同类型的数据和不同的问题。 下面的流程图是一些粗略的指导,可以让用户根据自己的数据来选择应该尝试哪些评估器。 点击下图的任何评估器,查看其文档。