![](/img/trans.png)
[英]Buiding Hadoop with Eclipse / Maven - Missing artifact jdk.tools:jdk.tools:jar:1.6
[英]Missing tools-1.6.jar with Eclipse and Maven
我試圖讓一個項目在 Eclipse 中使用 Maven 運行,但我在下面收到此錯誤。 tools.jar
在JDK 的lib
文件夾中,但tools-1.6.jar
在我的電腦上似乎不存在。 我正在使用 JDK 1.7,我的JAVA_HOME
指向該文件夾(就像我的eclipse.ini
)任何人都知道我在哪里可以獲得這個文件或者我可能做錯了什么?
容器“Maven Dependencies”引用了不存在的庫C:\Users\sejohnson\.m2\repository\com\sun\tools\1.6\tools-1.6.jar
tools-xyzjar應該由JDK提供。
確保eclipse是由JDK運行的,而不是通過在eclipse.ini中添加-vm選項而由JRE運行。
例如:
-vm
C:\Program Files\Java\jdk1.6.0_26\bin\javaw
在-vm
之后的新行是至關重要的。
它應該在正上方
-vmargs
我有完全相同的問題,並最終添加以下依賴項到pom文件:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>${java.version}</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
這解決了問題,並使tools.jar
可用於我的項目中的QueryDSL插件。 希望這可以幫助。 請注意,請確保使用JDK版本而不是JRE。
編輯:最近注意到當我移動新的開發平台時,問題再次出現,在我的情況下,它是Ubuntu 12.10。 解決方法是將${JAVA_HOME}/bin
到$PATH
可能是你的日食違反你的32位版本的jre。 如果您在JAVA_HOME設置為C:\\ Program Files \\ Java \\ jdk1.6.0_21 \\ bin並且運行32位版本的eclipse時執行所有操作,則最終將使用類似C:\\ Program Files(x86)\\ Java \\的內容JRE6 \\ bin中。
一旦你修復了你的jdk問題你將需要在快捷方式-vm“C:\\ Program Files(x86)\\ Java \\ jdk1.6.0_31 \\ bin”的末尾傳遞它
或者修復你的JAVA_HOME
其他建議是確保你的日食使用jdk而不是jrek http://gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx
如果您搜索具有此常見maven依賴性問題的tools.jar或playn另一個項目,您將找到其他帖子。
我遇到了同樣的問題,事實證明我的POM文件中的一個依賴項是傳遞性地將依賴項添加到我不需要的jdk.tools jar(並且導致了Eclipse Maven插件的問題)。 我的解決方案是將它從有問題的依賴項中排除,如下所示:
<dependency>
<groupId>it.unimi.di</groupId>
<artifactId>mg4j-big</artifactId>
<version>${mg4j-big.version}</version>
<exclusions>
<exclusion>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
</exclusion>
</exclusions>
</dependency>
嘗試尋找可傳遞導入jdk.tools jar的依賴項,並像我上面那樣排除。 這應該可以解決您的問題。
你能檢查你的pom.xml有關工具的依賴關系嗎? 一個很好的來源是mvnrepository.com,最后你的項目是否在eclipse之外編譯? mvn clean compile
是否在dos框或shell中工作? 如果它可能你只需要用mvn eclipse:eclipse
重新生成eclipse項目文件mvn eclipse:eclipse
然后在eclipse中刷新你的項目
除了上面提到的所有內容,這可能意味着診斷問題並最終提供適當的解決方案的不同步驟,我首先檢查命令行(意味着,在Eclipse運行時之外)。 從命令行執行簡單的“mvn clean install”將為您提供以下內容:
使用這兩個事實可以排除Java安裝和Maven安裝級別的問題。 然后你可以繼續使用Eclipse在命令行中使用相同的設置(JAVA JDK HOME,MAVEN HOME),因為上面的其他答案解釋了很好的細節(特別是brimstedt和josh )。
遇到同樣的問題,我不得不在eclipse中手動添加tools.jar:Preferences - > Java - > Installed JREs - > Select jre - > Edit - > Add External JARs - > Find並選擇tools.jar - > Finish。 現在它有效。
如果您遇到此構建問題,這是另一種選擇。 我有相同的構建問題,我嘗試了所有上述建議,問題仍然存在。 然后我注意到我的系統路徑有以下“C:\\ ProgramData \\ Oracle \\ Java \\ javapath”作為第一項。
我不確定哪個程序安裝了它。 當我檢查文件夾時,它只有一些鏈接(快捷方式)。 我從系統路徑中刪除了它,並解決了構建錯誤。 希望這可以幫助處於相同情況的其他人。
Echo @Gopal Ramakrishnan。 我在env路徑(windows OS)中遇到了同樣的問題。 它有“C:\\ ProgramData \\ Oracle \\ Java \\ javapath”,其中有java.exe,因此在啟動eclipse時會影響實際的jdk路徑。 只需刪除即可解決問題。 我很確定oracle“sql developer”悄悄地添加了“C:\\ ProgramData \\ Oracle \\ Java \\ javapath”......
在我的情況下,事實證明我在pom.xml中有這種依賴
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.6.0</version>
<scope>system</scope>
<systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
但是,在Eclipse啟動時將JAVA_HOME設置為JRE而不是JDK 。
所以tools.jar實際上並不存在這個原因
從 maven 手動刪除工件:
錯誤將得到解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.