11

JDKとJRE 6および7が一緒にインストールされたJenkinsサーバーがあります。

1.7 に依存するプロジェクトを除いて、すべてのプロジェクトは 1.6 で構築されています。

JAVA_HOME_7 環境 PATH から Java コンパイラーを使用するように maven pom ファイルを構成しました。

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <showDeprecation>true</showDeprecation>
                    <showWarnings>true</showWarnings>
                    **<executable>${env.JAVA_HOME_7}/bin/javac</executable>**
                    <fork>true</fork>
                    <verbose>false</verbose>
                </configuration>
            </plugin>

mvn のインストール中に、次のエラーが発生します。

java.lang.RuntimeException: There was an error in the forked process
java.lang.UnsupportedClassVersionError: : Unsupported major.minor version 51.0

これは、サーバーが JRE 1.6 を使用していることを意味すると思います。

古い 1.6 プロジェクトと新しい 1.7 プロジェクトとの互換性を維持するために、JRE 1.6 を 1.7 と一緒に維持するにはどうすればよいですか?

どうもありがとう、アタナス

4

4 に答える 4

12

Java 7 でも確実なテストを実行する必要があります。デフォルトでは、確実にmavenを実行しているものと同じjvmを使用します-あなたの場合はJava6です。

  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.13</version>
      <configuration>
        ...
        <jvm>${env.JAVA_HOME_7}/bin/java</jvm>
      </configuration>
    </plugin>
  </plugins>
于 2013-02-18T14:30:09.323 に答える
4

私もこの問題に苦労したことを覚えています。問題を解決するには、以下の手順に従ってください

原因:複数の JRE がインストールされている場合、複数のjava.exeもシステムの多くの場所にインストールされています。

解決策:環境のPATH変数を変更し、 java.exeの順序を変更します。以下のコードのように、最初の位置にjava.exeの場所を配置します

パス = C:\Program Files\Java\jdk1.6.0\; その他;その他;その他

用途や設置場所に合わせて上記の場所を変更してください。

于 2013-02-18T14:22:29.987 に答える
0

この問題に何度も遭遇しました。これは、システムに複数のバージョンの jdk(jre) があるためです。そのため、JAVA_HOME をプロジェクトをコンパイルする適切な jdk に設定するだけで、実行は問題ありません。

于 2015-03-27T05:09:44.470 に答える