簡體   English   中英

缺少工具 1.6.jar 和 Eclipse 和 Maven

[英]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

另請參閱Eclipse Maven插件配置問題

我有完全相同的問題,並最終添加以下依賴項到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中刷新你的項目

在任何公共存儲庫中都沒有提供tools.jar (據我所知)。 如果您的pom.xml引用本地存儲庫中的文件,則必須由您自己安裝。 你正在使用的pom.xml顯然希望有人在可加入的Maven存儲庫中創建/安裝了tools-1.6.jar(例如,到像Nexus這樣的公司中央maven存儲庫管理器)。

如果這不適合您,請嘗試更改依賴項,如Maven 常見問題解答中所述

除了上面提到的所有內容,這可能意味着診斷問題並最終提供適當的解決方案的不同步驟,我首先檢查命令行(意味着,在Eclipse運行時之外)。 從命令行執行簡單的“mvn clean install”將為您提供以下內容:

  1. 是否正確設置了java可執行文件的確定性(因為它們是所有java應用程序使用的默認設置,當然包括eclipse,
  2. 確定您的maven版本確實通過JDK配置來充分解決工具* .jar要求

使用這兩個事實可以排除Java安裝和Maven安裝級別的問題。 然后你可以繼續使用Eclipse在命令行中使用相同的設置(JAVA JDK HOME,MAVEN HOME),因為上面的其他答案解釋了很好的細節(特別是brimstedtjosh )。

遇到同樣的問題,我不得不在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 手動刪除工件:

  1. 轉到 pom.xml 的“依賴層次結構”選項卡
  2. 過濾 jdk.tools 例如:(jdk.tools:1.6 [system])
  3. 右鍵單擊 jdk.tools 並單擊“排除 Maven 工件”

錯誤將得到解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM