我在 Jenkins 2.107.2 上启动代理时遇到以下错误,看起来这是一个常见错误,根据我的作业,听起来需要使用 1.8 启动代理,我安装了 1.8 和我的 /usr/lib /jvm 文件夹如下所示,但是当我启动代理时它仍然使用 java 1.7.0,如何强制 Jenkins 使用 1.8 启动代理?
/usr/lib/jvm
错误:
[05/02/18 10:17:59] [SSH] Starting sftp client.
[05/02/18 10:17:59] [SSH] Copying latest slave.jar...
[05/02/18 10:17:59] [SSH] Copied 762,466 bytes.
Expanded the channel window size to 4MB
[05/02/18 10:17:59] [SSH] Starting slave process: cd "/home/username" && /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar slave.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Slave JVM has terminated. Exit code=1
[05/02/18 10:17:59] Launch failed - cleaning up connection
[05/02/18 10:17:59] [SSH] Connection closed
您可以在节点启动配置中显式设置 java 可执行文件的路径:
找到选项JavaPath并将其设置为您要使用的java可执行文件的完整路径;喜欢:
/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java
保存
您可以通过配置为节点设置JAVA_HOME环境变量。
对于 Windows,在 jenkins jar 文件所在文件夹中创建的 jenkins-slave.xml 文件中设置要使用的 Java 可执行文件的路径。
例如:
<service>
<id>jenkinsslave-C__jenkins</id>
<name>Jenkins agent (jenkinsslave-C__jenkins)</name>
<description>This service runs an agent for Jenkins automation server.</description>
<executable>C:\Program Files\Java\jdk1.8.0_192\bin\java.exe</executable>