2016-06-07 165 views
9

我已經搜索了一整天,並嘗試幾乎所有建議的解決方案,沒有人爲我的月食工作,完全不知道什麼地方出錯了,它一直說「不能找到tools.jar「當我嘗試通過Gradle構建時。Eclipse Gradle build「找不到tools.jar」

我做了什麼:

1)在系統環境變量中添加Java主目錄(點我的JDK)。

2)在Path系統環境變量中添加路徑(其中包含tools.jar)。

3)創建項目文件夾中的文件dependencies.gradle,指示搖籃尋找的tools.jar(compile files("${System.properties['java.home']}/../lib/tools.jar")

4)直接放在build.gradle dependencies那裏compile files("${System.properties['java.home']}/../lib/tools.jar")

5)在項目首選項中,去Java -> Build Path -> Classpath變量,加入JAVA_HOME變量。

6)將項目構建路徑指向JDK而不是JRE。

這些都不起作用!我還能嘗試什麼?

PS:Eclipse版本4.5.2火星,搖籃版本1.12

的build.gradle內容(此構建腳本會自動Eclipse生成):

apply plugin: 'java' 
apply plugin: 'eclipse' 

sourceCompatibility = 1.5 
version = '1.0' 
jar { 
    manifest { 
     attributes 'Implementation-Title': 'Gradle Quickstart', 
        'Implementation-Version': version 
    } 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2' 
    testCompile group: 'junit', name: 'junit', version: '4.+' 
} 

test { 
    systemProperties 'property': 'value' 
} 

uploadArchives { 
    repositories { 
     flatDir { 
      dirs 'repos' 
     } 
    } 
} 

Java的首頁內容:

enter image description here

路徑環境變量:

C:\Program Files\Java\jdk1.7.0_67\lib

錯誤在Eclipse控制檯顯示:

:compileJava FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':compileJava'. 
> Could not find tools.jar 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 0.152 secs 
[sts] Build failed 
org.gradle.tooling.BuildException: Could not execute build using Gradle 
installation 'C:\buildtools\gradle-2.12'. 
Caused by: java.lang.IllegalStateException: Could not find tools.jar 

(堆棧跟蹤太長,我縮短了。)

+0

更新它顯示了您安裝JDK的位置,以及JAVA_HOME的設置。刪除「tools.jar」的依賴關係。你不需要那個。顯示你的整個構建腳本和構建結果。 –

+0

@DavidM.Karr謝謝你的建議,我已經更新了這個問題, – GMsoF

+0

Path必須去bin,而不是lib。 –

回答

6

好的,我終於解決了我的問題。這很容易,我重新安裝了JDK。不知何故愚蠢的Eclipse(或Gradle插件,我仍然不確定哪個出錯)只是無法識別我的舊JDK路徑。

我重新安裝了JDK(藉此機會,我也將JDK 7升級到8)之後,我甚至不需要Java_home環境變量,它可以工作。

+1

劫持的解決方案可能是沒有重新安裝的解決方案 - 我和你過去的工作日處於相同的情況。 使用了所有路徑變量和eclipse設置,它很簡單,很難在線找到:在eclipse.ini中,指定了一個jre的路徑。我改變了我的JDK,它只是工作。 –

+0

我強烈懷疑窗口註冊表中出現了一些問題,這就是重新安裝解決問題的原因。 – GMsoF

1

我會建議讓您的構建在命令行中運行嘗試使用前日蝕gradle構建。它看起來像你的類路徑有問題,但不清楚究竟是什麼問題。最初從組合中刪除eclipse並使構建在沒有日食的情況下工作會有所幫助。在命令行cd到其中的build.gradle腳本存儲和文件夾運行

> gradle clean build 

> ./gradlew clean build 

如果這個工作正常,但Eclipse構建仍然無法比你知道的問題位於你的eclipse配置中的某處。如果使用gradle從命令行構建項目不起作用,那麼在項目或Gradle設置中存在潛在的問題。有很多可用的文檔將解釋如何使用gradle從命令行構建項目。

+0

嗨,謝謝你的建議,我嘗試通過命令行,我可以成功地建立它。我可以使用我的eclipse發出'clean'任務,而不是'build'任務。仍然不知道爲什麼... – GMsoF

+0

然後看起來像你的Eclipse設置的問題。您使用的是哪種Gradle插件?你檢查過這個屬性嗎?檢查它使用與從命令行運行時使用的相同版本的gradle。我有Gradle STS,但不傾向於從Eclipse內部運行gradle構建。 – robjwilkins

+0

我的PC只安裝了一個gradle版本,對於eclipse gradle插件,它是Gradle STS 3.7.3。 eclipse中的配置文件指出插件尋找安裝在我的電腦中的Gradle可執行文件。 – GMsoF

1

我的答案是我需要使用JDK捆綁的JRE運行Eclipse,而不是獨立的系統JRE。

修改eclipse.ini更改vm eclipse(.exe)查找。即:

-vm 
C:\Program Files\Java\jdk1.8.0_92\jre\bin\java.exe 
1

步驟1:開

第2步:打開窗口 - >首選項

第3步:去搖籃(STS) - >參數

第4步:選擇合適的JDK版本Java主選項。 (見下圖)

enter image description here

+0

謝謝,這工作得很好! –

2

我有同樣的問題。我相信這是由Gradle配置爲使用而不是eclipse/STS JRE的JRE引起的。在我的機器上,gradle默認使用錯誤的JRE。當安裝gradle時(即使通過buildship),它會在Windows的主目錄(C:/ Users/username)中放置一個.gradle目錄。你可以創建一個.gradle文件gradle.properties並指定JRE/JDK你想gradle這個在這個例子中使用:

org.gradle.java.home=C:/Program Files/Java/jdk1.8.0 

這可能會通過使用robyjwilkins建議使用命令行方式來揭示。它應該避免重新安裝JDK的需要。

欲瞭解更多信息,請參閱https://docs.gradle.org/current/userguide/build_environment.html

0

在我的情況,其中OP的解決方案也不能工作,得到的答覆是

  1. 在Eclipse中/搖籃任務gradle這個任務,用鼠標右鍵單擊插件窗口
  2. 打開選項卡的Java主頁「
  3. 設置Java家到C:\ Program Files文件\的Java \ jdk1.8.0_131 \ jre的

    目錄可能會有所不同,具體取決於jdk版本