ホームページ >Java >&#&チュートリアル >Java 8 が Eclipse の LogManager で「タイプ java.lang.reflect.AnnotatedElement を解決できません」というメッセージをスローするのはなぜですか?

Java 8 が Eclipse の LogManager で「タイプ java.lang.reflect.AnnotatedElement を解決できません」というメッセージをスローするのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-15 12:33:02636ブラウズ

Why Does Java 8 Throw

クラスパスの混乱: Eclipse を使用した Java 8 の LogManager での java.lang.reflect.AnnotatedElement エラー

Java 7u45 から Java 8u20 への移行中、開発者は、LogManager クラスを使用するときに、複雑なエラーに遭遇する可能性があります。プライベート静的 Logger log = LogManager.getLogger(Class1.class) の一見無害な宣言は、「タイプ java.lang.reflect.AnnotatedElement を解決できません。必要な .class ファイルから間接的に参照されています。」

というエラーをスローします。

Eclipse はユーザーにビルド パスの構成を求めるプロンプトを表示しますが、ユーザーは問題の根本原因がわかりません。このエラーは、基礎となる Java 8 JDK バージョンの変更が原因で発生します。 JDK 8 とそのコンパイラーを使用する IDE (Eclipse など) を使用する場合、IDE を Java 8 をサポートするバージョンに更新することが重要です。

この要件は、コンパイラーがロードする必要があるという事実から生じます。 JRE から最新のクラス ファイルを取得して、これらのクラスを参照するソフトウェアをコンパイルします。古いコンパイラは更新されたクラス ファイルのバージョン番号を見逃すことがありますが、特定のタイプでは混乱する可能性があります。たとえば、AnnotatedElement にはデフォルトのメソッドが含まれるようになりましたが、Map.Entry は静的メソッドが追加されたインターフェイスです。

Eclipse のエラー メッセージ「«classname» を解決できません」は、クラス ファイルが解決されるケースを区別していません。見つからないものや、コンパイラーが読み取りで問題を検出したもの。 ECJ コンパイラーを統合するツールやフレームワークを利用する場合にも、同様の問題が発生する可能性があります。

以上がJava 8 が Eclipse の LogManager で「タイプ java.lang.reflect.AnnotatedElement を解決できません」というメッセージをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。