如何在启动代理时强制 Jenkins 2.107.2 使用 java-1.8.0?
How do I force Jenkins 2.107.2 to use java-1.8.0 while launching an agent?
我 运行 在我的 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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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_HOME环境变量。
- 点击管理 Jenkins
- 点击管理节点
- Select 你所在的节点 运行 你的构建
- 点击配置。
- 为其添加环境变量(JAVA_HOME)
您可以在节点启动配置中显式设置 java 可执行文件的路径:
- 点击管理 Jenkins
- 点击管理节点
- 单击您要启动的节点
- 点击配置
- 在启动方法下有一个标签为高级...的按钮;点击它
找到选项 JavaPath 并将其设置为您要使用的 java 可执行文件的完整路径;喜欢:
/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java
保存
- 重新启动节点
我 运行 在我的 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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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_HOME环境变量。
- 点击管理 Jenkins
- 点击管理节点
- Select 你所在的节点 运行 你的构建
- 点击配置。
- 为其添加环境变量(JAVA_HOME)
您可以在节点启动配置中显式设置 java 可执行文件的路径:
- 点击管理 Jenkins
- 点击管理节点
- 单击您要启动的节点
- 点击配置
- 在启动方法下有一个标签为高级...的按钮;点击它
找到选项 JavaPath 并将其设置为您要使用的 java 可执行文件的完整路径;喜欢:
/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java
保存
- 重新启动节点