次のコマンドを使用して、コマンド プロンプトから実行しようとしている Maven Eclipse アプリケーションがあります。
java -cp target/classes;"target/dependency/*" com.example.Main
残念ながら、エラーがスローされます。
UnsupportedClassVersionError : unsupported major.minor version 51.0
掘り下げてみたところ、アプリケーションが実行されている JRE よりも新しいバージョンの JDK でコンパイルされているアプリケーションに関係があることがわかりました。どうやら51は1.7用にビルドされたことを意味しますが、私のコンピューターにはJDK 7がありません...
したがって、すべてがバージョン 1.6 に設定されていることを確認しました。
ルートの system.properties ファイルには
java.runtime.version=1.6
maven プロパティを追加しました
<java.version>1.6</java.version>
私のpom.xmlでmavenコンパイラプラグインを指定しました
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
返されたコマンド java -version を使用して、Javaのバージョンを確認しました
Java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-bit Server VM (build 20.13-b02, mixed mode)
また、maven-compiler-plugin を設定した後にプロジェクトを更新すると、Eclipse によって自動的にコンパイラ レベルが 1.6 に設定され、プロジェクト ファセット レベルが 1.6 に設定され、JavaSE-1.6 jre システム ライブラリがプロジェクトに追加されます。
そのため、この JDK 1.7 がどこから来たのかまったくわかりません。そもそも、このコンピューターにJDK 1.7をインストールしたことはありません...
あと、もともとmaven-compiler-pluginがなかったので1.5でビルドしたのかな。しかし、すべての設定を調整した後、 を実行し、mvn clean install
次にmvn package
を実行し、コマンドを再試行しましたが、それでも同じエラーがスローされます。