我是靠谱客的博主 精明音响,这篇文章主要介绍jenkins_java.lang.NoClassDefFoundError,现在分享给大家,希望可以做个参考。

出现这个问题其实是挺苦恼的,之前也有过一点java基础,对于这种问题,要么就是jenkins安装不完整,有些类找不到,要么就是jdk环境变量或者是class_path没有配置正确

在构建的时候出现发了如下问题

复制代码
1
2
3
4
5
6
7
8
9
10
11
FATAL: org/jenkinsci/plugins/workflow/job/WorkflowRun java.lang.NoClassDefFoundError: org/jenkinsci/plugins/workflow/job/WorkflowRun at org.jenkinsci.plugins.workflow.job.WorkflowJob$SCMListenerImpl.onCheckout(WorkflowJob.java:653) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) at hudson.model.Run.execute(Run.java:1741) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:410) Finished: FAILURE

至于具体原因也没有找到,我原来用的java版本是二进制文件,不在标准环境变量路径中,但是我安装了jdk-1.8.0-openjdk后,再重新启动jenkins,发现原来构建失败的都构建成功了。

突然想到一个问题,有可能是java环境问题,因为只给他bin可执行文件的路径还是不够的,还需要jvm运行时需要的类库

直接修改下面的文件就好了,所以要想用自己安装的jdk,则可以将自己的jdk路径写在candidates数组的靠前位置, 或者只写自己的安装路径信息

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ vim /etc/init.d/jenkins # Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins. # see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html # candidates=" # /etc/alternatives/java # /usr/lib/jvm/java-1.8.0/bin/java # /usr/lib/jvm/jre-1.8.0/bin/java # /usr/lib/jvm/java-1.7.0/bin/java # /usr/lib/jvm/jre-1.7.0/bin/java # /usr/bin/java # " candidates=" /usr/local/jdk/bin/java /usr/local/jdk/jre/java " # 这里可以看到其实就是给JENKINS_JAVA_CMD变量赋值 for candidate in $candidates do [ -x "$JENKINS_JAVA_CMD" ] && break JENKINS_JAVA_CMD="$candidate" done

最后

以上就是精明音响最近收集整理的关于jenkins_java.lang.NoClassDefFoundError的全部内容,更多相关jenkins_java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部