2016-01-13 79 views
0

問題:無法建立使用與詹金斯JDK 1.8Maven的詹金斯無法找到在JDK中的javac編譯

說明春天Maven項目:進出口使用詹金斯建立由Maven.I有管理我的春天項目使用JDK安裝選項在Jenkins中配置Java 1.7和1.8。當在構建配置中選擇Java 1.7並運行構建時,構建過程就會成功。但是當我在構建配置中選擇Java 1.8並運行構建時,構建過程失敗。

****下面是詹金斯控制檯輸出****

Started by user anonymous 
Building in workspace C:\Users\anonymous\.jenkins\jobs\springsecuritysampleproject1\workspace 
Updating file:///C:/DevEnv/Repositories/LocalSVNServerRepo/root/springsecuritysample/trunk at revision '2016-01-13T13:35:52.488 +0530' 
U   src\main\java\org\springframework\security\sample\HomeController.java 
At revision 21 
Parsing POMs 
[workspace] $ C:\DevEnv\ProgramFiles\Java\jdk1.8.0_20/bin/java -cp C:\Users\anonymous\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-agent-1.5.jar;C:\DevEnv\ProgramFiles\ProjectTools\Apache_Maven_3.3.3\boot\plexus-classworlds-2.5.2.jar;C:\DevEnv\ProgramFiles\ProjectTools\Apache_Maven_3.3.3/conf/logging jenkins.maven3.agent.Maven31Main C:\DevEnv\ProgramFiles\ProjectTools\Apache_Maven_3.3.3 C:\Users\anonymous\.jenkins\war\WEB-INF\lib\remoting-2.53.2.jar C:\Users\anonymous\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven31-interceptor-1.5.jar C:\Users\anonymous\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.5.jar 52876 
<===[JENKINS REMOTING CAPACITY]===>channel started 
Executing Maven: -B -f C:\Users\anonymous\.jenkins\jobs\springsecuritysampleproject1\workspace\pom.xml install 
Waiting for Jenkins to finish collecting data 
[JENKINS] Archiving C:\Users\anonymous\.jenkins\jobs\springsecuritysampleproject1\workspace\pom.xml to org.springframework.security/sample/1.0.0-BUILD-SNAPSHOT/sample-1.0.0-BUILD-SNAPSHOT.pom 
Sending e-mails to: [email protected] 
channel stopped 
Archiving artifacts 
Sending e-mails to: [email protected] 
Finished: FAILURE 

*

我也跑了Maven的與Java 1.7和沒有任何問題observerd手動。但是 當我跑一樣與Java 1.8和重定向輸出到文件, 發現下面的錯誤

*

INFO] Compiling 1 source file to C:\DevEnv\STSWorkspaces\springsecuritysample\target\classes 
[INFO] ------------------------------------------------------------- 
**[ERROR] COMPILATION ERROR :** 
[INFO] ------------------------------------------------------------- 
[ERROR] Unable to locate the Javac Compiler in: 
    C:\DevEnv\ProgramFiles\Java\jdk1.8.0_20\..\lib\tools.jar 
Please ensure you are using JDK 1.4 or above and 
not a JRE (the com.sun.tools.javac.Main class is required). 
In most cases you can change the location of your Java 
installation by setting the JAVA_HOME environment variable. 
[INFO] 1 error 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 0.640 s 
[INFO] Finished at: 2016-01-13T13:40:34+05:30 
[INFO] Final Memory: 8M/487M 
[INFO] ------------------------------------------------------------------------ 

JAVA_HOME變量被正確地指向JDK 1.8安裝主目錄和bin文件夾也被添加到該路徑

回波%JAVA_HOME%結果在C:\ devenv的\ PROGRAMFILES \爪哇\ jdk1.8.0_20

瓦時恩改變了JAVA_HOME變量指向的Java 1.7,建立正常運行,沒有錯誤

+0

的完整路徑只是爲了消除任何疑問,也確實是下'C安裝了JDK:\ devenv的\ PROGRAMFILES \的Java \ jdk1.8.0_20'並指出當' JAVA_HOME',運行'javac -version'會產生正確的結果,對嗎? – Morfic

+0

是的。運行命令C:\ Users \ anonymous> javac -version 結果輸出 - > javac 1.8.0_20 – kavsik

+0

經過幾個小時的調試後,maven獲取了tools.jar來啓動Sun的Main類,獲得了成功(使用JDK 1.7)和失敗(使用JDK 1)的自定義日誌輸出。8)構建運行如下 – kavsik

回答

0

根源

調試時,它結束了在神器的文件JavacCompiler.java叢,反編譯javac的。在編譯過程的輸出不同的Java 8和Java 7

線System.getProperty( 「java.home」)的Java 7 - C:\ devenv的\ PROGRAMFILES \爪哇\ jdk1.7.0_80 \ JRE

爪哇8 - C:\ devenv的\ PROGRAMFILES \爪哇\ jdk1.8.0_20

曾爲解決方案:爪哇8的

重新安裝

0

啓動從屬通過cmd但不型"java -jar slave.jar .....",而提java.exe作爲"C:\Program Files\Java\jdk1.8.0_121\bin\java.exe" -jar slave.jar ......