这是我收到的日志:
[09/25/15 11:02:03] [SSH] Opening SSH connection to XXXXXXX:22.
[09/25/15 11:02:04] [SSH] Authentication successful.
[09/25/15 11:02:04] [SSH] The remote users environment is:
ERRNO=22
FCEDIT=/bin/ed
HOME=/export/home/xxxx
IFS='
'
LC_COLLATE=en_US
LC_CTYPE=en_US
LC_MESSAGES=C
LC_MONETARY=en_US
LC_NUMERIC=en_US
LC_TIME=en_US
LINENO=1
LOGNAME=xxxx
MAIL=/var/mail/xxxx
MAILCHECK=600
OPTIND=1
PATH=/usr/bin:/bin
PPID=27709
PS2='> '
PS3='#? '
PS4='+ '
PWD=/export/home/xxxx
RANDOM=23490
SECONDS=0
SHELL=/bin/ksh
SSH_CLIENT='xxx.xxx.xxx.xxx 63489 22'
SSH_CONNECTION=xxx.xxx.xxx.xxx 63489 xxx.xxx.xxx.xxx22'
TMOUT=0
TZ=Europe/Brussels
USER=scv2
_
[09/25/15 11:02:04] [SSH] Checking java version of java
[09/25/15 11:02:04] [SSH] java -version returned 1.5.0_38.
[09/25/15 11:02:04] [SSH] Starting sftp client.
[09/25/15 11:02:05] [SSH] Copying latest slave.jar...
[09/25/15 11:02:05] [SSH] Copied 489.023 bytes.
Expanded the channel window size to 4MB
[09/25/15 11:02:05] [SSH] Starting slave process: cd "./jenkins-slave" && java -jar slave.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
在运行之前,有没有办法通过 Jenkins 设置正确的变量java -jar slave.jar
?我曾尝试在 Jenkins 的“节点属性”部分设置环境变量,但它们并未在从属安装之前应用。(参见此错误报告)
Jenkins 唯一需要提前做的java -jar slave.jar
就是运行以下命令:
JAVA_HOME=/opt/app/java17; export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH; export PATH
我怎样才能做到这一点?
答案1
答案2
您可以更新 Jenkins 版本,这样可以解决问题。否则,这对我有用(Jenkins 1.6,构建/测试节点:macOS Mojave):
首先安装java8在您的构建/测试节点中使用以下命令:
brew update
brew cask install caskroom/versions/java8
然后在 Jenkins Web 面板中单击您的构建/测试节点,然后单击配置然后点击先进的...按钮,这将向您显示多个文本字段。然后在 JavaPath 字段中添加 java8 的路径。
对我来说这条路是这样的:
/Library/Java/JavaVirtualMachines/jdk1.8.X_XXX.jdk/Contents/Home/bin/java
笔记:记得X_XXX
先用你的java8版本替换。
然后节省。
之后断开构建/测试节点并重新连接。这应该可以解决问题。