2

次のにもかかわらず、宛先コンピューターでこのエラーが発生します。

  1. ソース コンピュータとターゲット コンピュータの両方に同じバージョンの Java がインストールされています - 1.6 26 回目の更新
  2. 同様の方法でコンパイルして実行したすべてのファイルは、これを除いて完全に実行されます。これは、私のアプリケーションの Swing GUI です。
  3. さらに、私はIDEを使用していません。編集には普通のメモ帳を使用しています

なぜUnsupportedClassVersionError3 つの制約があるにもかかわらず、その解決策は?

注: このファイルは、AWT および SWING の単純なライブラリを使用した、ソース上で完全に機能する単純な GUI フロント エンド コードです。

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
4

2 に答える 2

3

残念ながら、実際には、メイン クラスは、実行している Java コンパイラよりも新しいバージョンの Java コンパイラでコンパイルされています。それまたはあなたのクラスファイルは、どういうわけか他の方法で恐ろしく壊れていました. javaと の複数のバージョンがにjavacインストールされていないことを確認してくださいPATH-target 1.6また、javacに渡してみることもできます。(たとえば) javac 1.7 を実行している場合、Java 1.6 と互換性のあるコードを生成するように指示されます。

異なるバージョンの JRE と JDK をインストールできることに注意してください。PATH の順序によっては、システムが Java 1.7 を選択しjavac、Java 1.6 を選択する場合がありますjava

さらに、クラスパスにサードパーティのライブラリがある場合は、それらが新しいバージョンの Java でコンパイルされていないことも確認する必要があります。他のクラスが問題を隠している可能性のあるサードパーティのライブラリを利用していない場合。

于 2012-04-21T07:44:32.667 に答える
1

異なるバージョンの JDK でコンパイルされたクラスを別のバージョンの JRE で実行しようとすると発生します。

jdk と JRE のバージョンが同じか互換性があることを確認してください。java -version を使用してバージョンを確認できます

于 2012-04-21T07:45:22.337 に答える