报错信息:
java.lang.RuntimeException: unsupported Java version: 11 at org.jruby.RubyInstanceConfig.initGlobalJavaVersion(RubyInstanceConfig.java:1674) at org.jruby.RubyInstanceConfig.<clinit>(RubyInstanceConfig.java:1387)Caused: java.lang.ExceptionInInitializerError at org.jruby.embed.internal.AbstractLocalContextProvider.<init>(AbstractLocalContextProvider.java:42) at org.jruby.embed.internal.SingleThreadLocalContextProvider.<init>(SingleThreadLocalContextProvider.java:43) at org.jruby.embed.ScriptingContainer.getProviderInstance(ScriptingContainer.java:242) at org.jruby.embed.ScriptingContainer.<init>(ScriptingContainer.java:226) at org.jruby.embed.ScriptingContainer.<init>(ScriptingContainer.java:192) at org.kohsuke.stapler.jelly.jruby.JRubyFacet.<init>(JRubyFacet.java:65) at ruby.RubyRuntimePlugin.registerJRubyFacet(RubyRuntimePlugin.java:39) at ruby.RubyRuntimePlugin.start(RubyRuntimePlugin.java:30) at hudson.ClassicPluginStrategy.startPlugin(ClassicPluginStrategy.java:408) at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:397)Caused: java.io.IOException: Failed to initialize at hudson.ClassicPluginStrategy.load(ClassicPluginStrategy.java:400) at hudson.PluginManager.dynamicLoad(PluginManager.java:922)Caused: java.io.IOException: Failed to install ruby-runtime plugin at hudson.PluginManager.dynamicLoad(PluginManager.java:934) at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2183)Caused: java.io.IOException: Failed to dynamically deploy this plugin at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2187) at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1850) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121) at java.base/java.lang.Thread.run(Thread.java:829)

解决:
从上面的报错信息分析可能是由于Jenkins容器中的Java 11版本过高。我们单独下载一个低版本的jdk,然后将低版本的jdk拷贝到Jenkins容器中替换掉之前的Java 11版本。
[root@k8s-master ~]# wget https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u262-b10/openlogic-openjdk-8u262-b10-linux-x64.tar.gz //下载jdk8[root@k8s-master ~]# ll openlogic-openjdk-8u262-b10-linux-x64.tar.gz-rw-r--r-- 1 root root 104479130 7月 26 2020 openlogic-openjdk-8u262-b10-linux-x64.tar.gz[root@k8s-master ~]# docker ps | grep jenkins2324d2daa74d jenkins/jenkins:lts "/sbin/tini -- /usr/…" 6 weeks ago Up 2 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins[root@k8s-master ~]# docker cp openlogic-openjdk-8u262-b10-linux-x64.tar.gz jenkins:/usr/local/ //将下载的jdk拷贝到jenkins容器中[root@k8s-master ~]# docker exec -it -u root jenkins /bin/bash //进入jenkins容器root@2324d2daa74d:/# java -version //可以看到现在jenkins容器的jdk版本是11.0.12openjdk version "11.0.12" 2021-07-20OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)root@2324d2daa74d:/# cd /usr/local/root@2324d2daa74d:/usr/local# tar -xvf openlogic-openjdk-8u262-b10-linux-x64.tar.gz //解压我们刚才拷贝到jenkins容器中的jdk低版本root@2324d2daa74d:/usr/local# lsbin games lib openlogic-openjdk-8u262-b10-linux-64 sbin srcetc include man openlogic-openjdk-8u262-b10-linux-x64.tar.gz shareroot@2324d2daa74d:/usr/local# mv openlogic-openjdk-8u262-b10-linux-64/ jdk8 //将解压后的jdk低版本目录名称修改为jdk8root@2324d2daa74d:/usr/local# lsbin etc games include jdk8 lib man openlogic-openjdk-8u262-b10-linux-x64.tar.gz sbin share srcroot@2324d2daa74d:/usr/local# whereis java //查看jenkins容器中的java安装位置java: /opt/java/openjdk/bin/javaroot@2324d2daa74d:/usr/local# mv /opt/java/openjdk/bin/java /opt/java/openjdk/bin/java11.bak //备份jenkins容器中的原java11版本root@2324d2daa74d:/usr/local# ln -s /usr/local/jdk8/bin/java /opt/java/openjdk/bin/java //将/usr/local/jdk8/bin/中低版本的java作为/opt/java/openjdk/bin/中的java软连接root@2324d2daa74d:/usr/local# java -version //查看“替换”后的java版本openjdk version "1.8.0-262"OpenJDK Runtime Environment (build 1.8.0-262-b10)OpenJDK 64-Bit Server VM (build 25.71-b10, mixed mode)
再次安装ruby-runtime插件,若还是失败,可以在Jenkins首页重启一下再安装即可。(重启Jenkins后ruby-runtime插件默认就会加载成功)


root@2324d2daa74d:~# rm -rf /opt/java/openjdk/bin/java #删除了之前替换的java8root@2324d2daa74d:~# mv /opt/java/openjdk/bin/java11.bak /opt/java/openjdk/bin/java #换回了java11root@2324d2daa74d:~# java -versionopenjdk version "11.0.12" 2021-07-20OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
温馨提示
如果您喜欢本文,就请动动您的发财手为本文留言转发在看,想获取更多运维相关内容,请记得关注我。
点个[在看],是对我最大的支持!
文章转载自非著名运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





