Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins maven无法在JDK中找到Javac编译器_Java_Maven_Jenkins_Build_Compiler Errors - Fatal编程技术网

Jenkins maven无法在JDK中找到Javac编译器

Jenkins maven无法在JDK中找到Javac编译器,java,maven,jenkins,build,compiler-errors,Java,Maven,Jenkins,Build,Compiler Errors,问题:无法使用Jenkins和JDK 1.8构建spring maven项目 说明:我正在使用Jenkins构建由Maven管理的spring项目。我已经使用JDK安装选项在Jenkins中配置了Java 1.7和1.8。在构建配置中选择Java1.7并运行构建时,构建过程成功。但当我在构建配置中选择Java1.8并运行构建时,构建过程就会失败 ****下面是jenkins控制台输出**** JAVA_HOME变量正确地指向JDK 1.8安装主目录,bin文件夹也添加到路径中 echo%JAVA

问题:无法使用Jenkins和JDK 1.8构建spring maven项目

说明:我正在使用Jenkins构建由Maven管理的spring项目。我已经使用JDK安装选项在Jenkins中配置了Java 1.7和1.8。在构建配置中选择Java1.7并运行构建时,构建过程成功。但当我在构建配置中选择Java1.8并运行构建时,构建过程就会失败

****下面是jenkins控制台输出****

JAVA_HOME变量正确地指向JDK 1.8安装主目录,bin文件夹也添加到路径中

echo%JAVA\u HOME%结果为C:\DevEnv\ProgramFiles\JAVA\jdk1.8.0\u 20

将JAVA_HOME变量更改为指向JAVA 1.7时,构建运行正常,没有错误

根本原因

调试时,它最终位于artifactplexus编译器javac的JavacCompiler.java文件中。编译过程中的行System.getProperty(“java.home”)对Java8和Java7的输出不同

Java 7-C:\DevEnv\ProgramFiles\Java\jdk1.7.0\u 80\jre

Java 8-C:\DevEnv\ProgramFiles\Java\jdk1.8.0\u 20

工作解决方案:


重新安装Java 8

通过
cmd
启动从机,但不要键入
“Java-jar slave.jar…”
,而是将
Java.exe
的完整路径提到
“C:\Program Files\Java\jdk1.8.0\u 121\bin\Java.exe”-jar slave.jar……
,以消除任何疑问,确实在
C:\DevEnv\ProgramFiles\Java\jdk1.8.0_20
下安装了一个jdk,当指向它时,运行
javac-version
会产生正确的结果,对吗?是的..运行命令C:\Users\anonymous>javac-version会得到输出-->javac 1.8.0\u 20经过几个小时的调试,了解maven是如何获得tools.jar来启动sun的主类的,获得了成功(使用JDK 1.7)和失败(使用JDK 1.8)的自定义日志输出,构建运行如下成功(使用JDK 1.7构建)[INFO]toolsJar文件C:\DevEnv\ProgramFiles\Java\jdk1.7.0_80\jre\..\lib\tools.jar[INFO]添加url文件:/C:/DevEnv/ProgramFiles/Java/jdk1.7.0_80/jre/./lib/tools.jarFailure(使用JDK 1.8构建)[INFO]toolsJar文件C:\DevEnv\ProgramFiles\Java\jdk1.8.0_20\..\lib\tools.jar
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: test@test.com
channel stopped
Archiving artifacts
Sending e-mails to: test@test.com
Finished: FAILURE
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] ------------------------------------------------------------------------