-2

Java で基本的なファイル ブラウザを作成しました。Eclipseで実行可能なJarファイルにエクスポートしました。Windows マシンでは問題なく動作しますが、コマンド ラインから Ubuntu マシンで実行しようとすると、次のエラーが発生します。

Exception in thread "main" java.lang.UnsupportedClassVersionError: Main : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Main. Program will exit.

jarファイルは実行可能としてマークされています。ダブルクリックして実行してみました。右クリック> openjdk Java 6ランタイムで開きます

編集:Java 7で試しましたが、同じエラーが発生します。

4

1 に答える 1

2

バージョン 51 はおおよそ Java 7 に対応します。インストールしますopenjdk-7-jre。または開発用openjdk-7-jdk

これは、次のコマンドで実行できます。

sudo apt-get install openjdk-7-jre

また、IcedTea を選択することもできますicedtea-7-jre-jamvm

jar を互換性レベル 1.6 でコンパイルすることもできますが、特別な構成を行わないと、特定のライブラリで問題が発生する可能性があります。コンパイラでターゲットよりも上位のソースを使用することはできないため、次のような短縮されたジェネリックを放棄する必要があります。

ArrayList<Foo>=new ArrayList<>();

(代わりに型引数を入力してください) およびその他の種類の気の利いた 7 のみの機能。

于 2013-08-03T01:10:12.787 に答える