この例を実行しようとして いますが、「.class ファイルのバージョン番号が正しくありません...」というエラーが表示されます。私はjdkバージョン1.6を使用しており、例ではjdk 1.5を使用するように求めています。Java は下位互換性をサポートする必要があります。jdk 1.6 で例を実行するにはどうすればよいですか?
2 に答える
ここには、多くの新しい人々が陥る微妙な罠があります。時々-しばしば、実際に-あなたはjava.exeあなたのマシンにインストールされた古いJDKからのコピーを持っているかもしれません、あなたが知らないあなたのパスの早い段階で現れます。光沢のある新しいJDK1.6コンパイラを使用してクラスをコンパイルし、古いコンパイラを使用してクラスを実行しようとすると、java.exeここに記載されているエラーが発生する可能性があります。その古いjava.exe場所がパス上でJDKディレクトリよりも前にあるbin場合は、コマンドラインからコンパイラを見つけることができますが、java.exeそれ自体の正しいバージョンは見つかりません。
エクストラjava.exeは、多くの場合、Javaプラグインの古いインストーラーによってインストールされました。これにより、Webブラウザーでアプレットを実行できます。不正java.exeはあなたのWINDOWSディレクトリ、またはいくつかの変種にある可能性があります(これは特にWindows中心の問題です)。
Javaプラグインを含むJDK1.6をインストールした場合はjava.exe、WINDOWSディレクトリ内ののコピーを削除するだけです。それを望まない場合は、JDKのbinディレクトリがの前になるようにパスを変更する必要がありますWINDOWS。
古い JVM で新しいバージョン番号のクラス ファイルを実行しようとすると、「.class ファイルのバージョン番号が正しくありません...」というエラーが発生します。(それでも、すべての場合ではありません)
新しい JVM で古いバージョン番号のクラス ファイルを実行すると、うまくいくはずです。
を使用して、クラス ファイルのバージョン番号を確認できますjavap -v <full-class-name>。バージョンは次のとおりです。
major minor Java
45 3 1.0
45 3 1.1
46 0 1.2
47 0 1.3
48 0 1.4
49 0 1.5
50 0 1.6
で思うんですけど ...
51 0 1.7