web-dev-qa-db-ja.com

サポートされていないmajor.minorバージョン52.0-Java_homeとPathですでに設定されているJava 8を検索しようとしています

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、Jenkinsバージョン-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>
4

これが正解なのか回避策なのかはわかりません。 Jenkinsの管理に移動する権限がありませんでした。管理者ユーザーが[Jenkinsの管理]オプションを使用してJDKを設定すると、すべてが正常に機能しました。

1

私は同じ問題に遭遇しました。 1年以上変わっていない既存のプロジェクトを作ろうとしていたので、いらいらしました。私はいつも次のエラーが発生しました:

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バージョンの互換性 。問題はそのサイトで1つのセンテンスによって非常によく説明されています:

Javaシリアル化されたクラスはJenkinsマスターとMavenジョブの間で交換されるため、Mavenの起動に使用されるJVMがJava for Jenkinsマスターはそのために構築されています。

Jenkinsプロジェクトを開き、「JDK」設定を変更しました。 Javaバージョン(私の場合はJava 8)に変更した後、すべてが正常で、プロジェクトは正常にビルドされていました。

3
stritzi

以前はJava 7(hudson/remoting/Launcher:サポートされていないmajor.minorバージョン52.0)で同様の問題が発生していました。JenkinsでMavenジョブの代わりにFreestyleジョブを構成することになりました。私の問題を解決しました。

1
Marco

悲しい答えは、古いJVMで最新のクラスファイルを実行しようとしているということです。使用しようとしているJVMは、コマンドを手動で実行するときに使用しているものではありません。

私の推測では、Jenkinsユーザーは、テストを行うときのように、ログインしたユーザーとは別のJVMをパス上に持っています。

Jenkinsユーザーと同じコマンドを実行すると、別のJVMが使用されていることがわかる場合があります。

0
Thomas Sundberg