1. ホーム
  2. java

[解決済み] java.lang.UnsupportedClassVersionError: .classファイルに不正なバージョン番号がある?

2022-05-24 23:56:23

質問

私は、ソースからコンパイルしなければならなかったオープンソースライブラリをインクルードするときに、このエラーが発生します。 今、ウェブ上のすべての提案は、コードが1つのバージョンでコンパイルされ、別のバージョン(新旧)で実行されたことを示しています。 しかし、私のシステムにはJREのバージョンが1つしかありません。 もし私がコマンドを実行すると

$ javac -version
javac 1.5.0_18

$ java -version
java version "1.5.0_18"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02)
Java HotSpot(TM) Server VM (build 1.5.0_18-b02, mixed mode)

で、Eclipseでjavaライブラリのプロパティを確認すると、以下のようになります。 1.5.0_18

したがって、私は何か他のもの、クラス自体の内部で、例外をスローしていると結論づけなければなりませんか?そんなことが可能なのでしょうか?

どのように解決するのですか?

私は、このようなエラーメッセージはたいてい正しいことを学びました。報告されたエラーが言っていることが (自分の中では) ありえない場合、別の領域の問題を探しに行きますが、数時間後に元のエラー メッセージが本当に正しいことを発見します。

このメッセージが表示される最も可能性の高い理由は、プロジェクトの 1 つが 1.6 クラスをコンパイルしているためです。Eclipse には独自のコンパイラー (javac ではない) があり、1.6 クラスをコンパイルするために 1.5 の JRE が必要なだけなので、システム上に 1.5 の JRE しかなくても問題ではありません。 これは奇妙なことで、これを可能にするために設定をオフにする必要があるかもしれませんが、私はそれを行うことができました。

問題のプロジェクトについて、プロジェクトのプロパティ (通常は Alt+Enter) の Java コンパイラのセクションを確認します。これは、1.6 をコンパイルするように構成されたプロジェクトの画像ですが、1.5 の JRE しかありません。