缺少本地存储库中的tools.jar会破坏m2eclipse

我遇到的问题是eclipse无法解决我项目的任何依赖关系。 这会导致问题,因为即使编码时依赖关系似乎正常工作(我得到自动完成),我仍然会得到一个很大的错误列表,指出缺少的工件。

过滤这些时,我发现了以下内容:

容器’Maven Dependencies’引用了不存在的库’/home/[…]/.m2/repository/com/sun/tools/1.5.0/tools-1.5.0.jar’

似乎这个依赖是由struts2引入的,他们的pom中的配置文件如下所示:

 com.sun tools 1.5.0 system ${java.home}/../lib/tools.jar  

那个systemPath解析了,所以我没有看到为什么这会导致麻烦的原因。 在任何情况下,有没有办法告诉eclipse这个m2eclipse依赖是一个在本地存储库中找不到的系统依赖?

我遇到了同样的问题,需要做以下事情

  • eclipse.ini文件中添加-vm path / to / jdk / bin
  • 清理现有工作区并重新加载项目。

它无缝地为我工作。

值得补充的是,在我的eclipse.ini文件中,我必须在文件顶部添加-vm …行。 喜欢

 -vm C:\Program Files\Java\jdk1.6.0_27\bin ... ... ... 

确保-vm选项放在-vmargs之前,因为-vmargs直接传递给vm并且选择一个特定的东西取决于-vm选项。

我有这个问题,但我已经修复了使用以下步骤:

情况1:

Eclipse默认指向JRE,但eclipse maven插件需要JDK才能指向JDK

窗口 – > Preperences – > Java – >已安装的JRE

将其更改为JDK

案例2:

  1. 在Eclipse IDE中,转到:Window … Preferences …已安装的JRE
  2. 选择默认JRE并单击“编辑”。
  3. 单击Add External Jar
  4. 我在“C:\ Program Files \ Java \ jdk1.6.0_22 \ lib”中找到了tools.jar并添加了。

现在我可以毫无问题地构建我的项目。 这是解决此问题的正确方法吗?

我遇到了同样的问题 – Eclipse无法找到tools.jar。 我发现原因是Eclipse使用的是JRE而不是JDK。 您必须向指向JDK bin目录的eclipse.ini添加-vm参数:

-vm
path_to_jdk \ BIN

这应该可以解决问题。

从struts依赖项中排除工具jar。

   com.sun tools   

下载http://repository.ops4j.org/maven2/tools/tools/1.5.0/并将jar放入C:\Documents and Settings\Administrador\.m2\repository\com\sun\tools\1.5.0 。 祝你好运。

您需要validationEclipse是否正在使用JDK安装

在Eclipse IDE中,转到Window / Preferences / Java / Installed JREs指向JDK安装。

例如: C:\Program Files (x86)\Java\jdk1.6.0_37

我看了这个,尝试了各种各样的东西 对我有用的是:我改变了窗口 – >首选项 – > java – >安装了JRE以指向JDK。 这解决了这个问题。

听起来很奇怪,我只是通过与SVN存储库重新同步来解决这个问题。

问题是,我从另一台PC上获取了整个工作区,所以当我使用m2e插件导入maven项目时,可能某些依赖项没有正确同步。

我发布这个以防万一有人对此错误感到绝望并尝试所有可能性。

在导入Eclipse的每个项目中,Eclipse在文件系统上生成一些文件 – .project,.classpath,文件夹.settings。 似乎Eclipse没有正确更新这些。

删除它们并再次导入它们。

显然,如果这是您的第一次导入并且您已经获得了一些问题,则此解决方法将不起作用。 在这里看看Maven2:缺少神器,但jar子到位了

我也有类似的问题,并通过以下方式修复它。 在命令提示符下转到JDK安装路径的lib目录。 执行以下命令安装以安装tools.jar。

 $mvn install:install-file -DgroupId=sun.jdk -DartifactId=tools \ -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar 
  com.sun tools 1.6.0 system ${env.JAVA_HOME}/lib/tools.jar  

只需添加这个。 它会工作。

这种依赖应该按预期工作。 如果有疑问,请尝试使用Maven的命令行版本,因为Eclipse插件在依赖项解析方面非常脆弱。

与Eclipse的其他部分不同,如果POM出现问题,它甚至无法为构建创建部分类路径,因此错误可能是其他错误。

如果所有其他方法都失败,请尝试将该文件安装到本地存储库中,以便您可以看到下一个错误。

我最终找到了导致它的原因。 当您使用maven1存储库时,看起来这是m2eclipse中的一个错误。 我的pom中仍然有java.net maven1存储库; 禁用后一切都恢复正常。 追踪一个非常烦人的问题,因为最终它与查找工具jar无关。

对于Mac用户

[1]要查找VM的类型,请输入/ usr / libexec / java_home

[2] vi ./Eclipse.app/Contents/MacOS/eclipse.ini

[3]
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/
-vmargs …….. ……..

[4]在Eclipse中,更新Maven

[5]一切都很好:-)

我有几次同样的问题,我可以按照两个步骤修复它:

  1. 我将“-vm C:\\ bin”添加到eclipse.ini或我运行eclipse的链接。
  2. 多次遇到这个问题之后,我开始怀疑可能会有一些m2eclipse缓存在一段时间后(大约一天左右)重新加载,所以我尝试了一个奇怪的解决方案:暂时将计算机时间更改为第二天并重新启动Eclipse或关闭/清洁项目…… ……工作!!!

我可以成功地重复几次这个过程。

一个更优雅的解决方案(我还没有机会尝试它),可能是要清除https://stackoverflow.com/a/16444984中提到的m2eclipse缓存。

希望这对任何人都有帮助。

这个问题是由于java配置错误造成的。 每个IDE都需要完整的JDK包。 因为在JDK lib而不是jre lib中可用的tools.jar

  1. 转到控制面板更改环境路径变量到C:\ Program Files \ Java \ jdk1.8.0_31 \ jre \ bin。

  2. 将JAVA_HOME更改为C:\ Program Files \ Java \ jdk1.8.0_31。

  3. 打开IDE(eclipse或STS)将JRE系统库更改为C:\ Program Files \ Java \ jdk1.8.0_31

然后重启IDE。 它会工作