不支持的 major.minor 版本 52.0 - 尝试查找已在 Java_home 和 Path 中设置的 Java



>我正在尝试运行由 Jenkins 作业在黄瓜框架中构建的自动化代码,其中环境变量是通过构建设置注入来设置的。我收到以下错误。

[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[EnvInject] - Injecting as environment variables the properties content 
PATH=/data/java/jdk180152/bin:/data/build_tools/maven/apache-maven-3.5.2/bin:/data/build_tools/python/python-2.7.14/bin/:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:
M2_HOME=/data/build_tools/maven/apache-maven-3.5.2
JDK_HOME=/data/java/jdk180152
JAVA_HOME=/data/java/jdk180152
MAVEN_HOME=/data/build_tools/maven/apache-maven-3.5.2
[EnvInject] - Variables injected successfully.
Parsing POMs
Established TCP socket on 33831
[cafeAutomation] $ java -cp /data/jenkins/plugins/maven-plugin/WEB-INF/lib/maven35-agent-1.12-alpha-1.jar:/data/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven-3.5.2/boot/plexus-classworlds-2.5.2.jar:/data/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven-3.5.2/conf/logging jenkins.maven3.agent.Maven35Main /data/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven-3.5.2 /var/cache/jenkins/war/WEB-INF/lib/remoting-3.14.jar /data/jenkins/plugins/maven-plugin/WEB-INF/lib/maven35-interceptor-1.12-alpha-1.jar /data/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.12-alpha-1.jar 33831
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:442)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:64)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:133)
    at jenkins.maven3.agent.Maven35Main.main(Maven35Main.java:64)
ERROR: ================================================================================
ERROR: Invalid project setup: Connection reset
ERROR: Processing failed due to a bug in the code. Please report this to the issue tracker (https://jenkins.io/redirect/report-an-issue).
java.lang.NullPointerException
    at hudson.maven.AbstractMavenProcessFactory.newProcess(AbstractMavenProcessFactory.java:304)
    at hudson.maven.ProcessCache.get(ProcessCache.java:236)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:804)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
    at hudson.model.Run.execute(Run.java:1724)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:421)
project=hudson.maven.MavenModuleSet@6b7062ed[smr-qa-maven]
project.getModules()=[hudson.maven.MavenModule@10ea4a41[smr-qa-maven/cafeAutomatin:cafeAutomation][smr-qa-maven/cafeAutomation:cafeAutomation][relativePath:WebApp/Automation Scripts/CAFE Automation Scripts/cafeAutomation]]
project.getRootModule()=hudson.maven.MavenModule@10ea4a41[smr-qa-maven/cafeAutomation:cafeAutomation][smr-qa-maven/cafeAutomation:cafeAutomation][relativePath:WebApp/Automation Scripts/CAFE Automation Scripts/cafeAutomation]
FATAL: null

包装盒上安装的Java版本-Java 8,Maven - 3.5.2,詹金斯版本 - 2.89.3

在我的pom.xml文件中,我提到该插件为

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<compilerVersion>1.8</compilerVersion>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
                    <executable>/data/java/jdk180152/bin/javac</executable>
</configuration>
</plugin>

也尝试通过将以下内容添加到pom文件中,但仍然出现相同的错误

<properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

我遇到了同样的问题。这很令人厌烦,因为我试图建立一个现有的项目,该项目自一年多以来一直没有改变。我总是收到以下错误:

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:791)
    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 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at jenkins.maven3.agent.Maven33Main.main(Maven33Main.java:133)
    at jenkins.maven3.agent.Maven33Main.main(Maven33Main.java:64)
ERROR: ================================================================================
ERROR: Invalid project setup: Connection reset
ERROR: [JENKINS-18403][JENKINS-28294] JDK 'JDK7' not supported to run Maven projects.
ERROR: Maven projects have to be launched with a Java version greater or equal to the minimum version required by the master.
ERROR: Use the Maven JDK Toolchains (plugin) to build your maven project with an older JDK.
ERROR: Retrying with slave Java and setting compile/test properties to point to /var/tomcat/java/jdk7/.
ERROR: ================================================================================

OPS团队的某个人更新了Jeikins版本,这就是线索!我来关注网站Maven工作和Java版本兼容性。一位参议员在该网站上很好地描述了这个问题:

因为java序列化类在Jenkins master之间交换 和 Maven Jobs 要求用于启动 Maven 的 JVM 是 优于或等于 Jenkins Master 所针对的 Java 版本 专为。

我打开了我的 Jenkins 项目并更改了"JDK"设置。更改 java 版本(在我的情况下是 Java 8(后,一切都很好,我的项目构建成功。

好吧,

我不知道这是正确答案还是解决方法。我没有权限去管理 Jenkins。当管理员用户通过"管理Jenkins"选项设置JDK时,一切正常。

我曾经在Java 7上遇到过类似的问题(hudson/remoting/Launcher:不支持的major.minor version 52.0(。我最终在 Jenkins 中配置了一个 Freestyle Job 而不是 Maven Job。它解决了我的问题。

可悲的答案是,您正在尝试在旧的JVM上执行现代类文件。您尝试使用的 JVM 不是您在运行手动运行命令时使用的 JVM。

我的猜测是,Jenkins 用户的路径上有一个 JVM,而不是你登录的用户,当你进行测试时

运行与 Jenkins 用户相同的命令,您可能会发现正在使用另一个 JVM。

最新更新