0

JDOM APIを使用しているときに、これから抜け出す方法を見つけるのを手伝ってください。

root.addContent(new Element("name").setText("Enlightenment"));

メソッドを使用して要素を XML に追加しますが、実行時に次の例外が発生します。

java.lang.VerifyError: (class: com/asiaone/web/common/A1BusinessXmlOperation, method: create signature: ()V) Incompat`enter code here`ible argument to function
        at org.apache.jsp._business_5F_iframe_5F_page._jspService(_business_5F_iframe_5F_page.java:281)

ランタイム JDOM ライブラリを使用してファイルをコンパイルした後、次の例外が発生します。

java.lang.UnsupportedClassVersionError: com/asiaone/web/common/A1BusinessXmlOperation 
(Unsupported major.minor version 49.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)

しかし、私はJavaのバージョンをチェックします:

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

つまり、問題ありません。なぜこのエラーが今起こっているのですか?

`java.lang.LinkageError: クラスの定義中に LinkageError: com.asiaone.web.common.A1BusinessXmlOperation が原因で定義できませんでした: com/asiaone/web/common/A1BusinessXmlOperation (サポートされていない major.minor バージョン 49.0)クラスローダー階層内の複数の場所で定義されたクラスを持つ。その他の潜在的な原因には、互換性のないメソッド シグネチャを持つ古いバージョンまたは新しいバージョンのクラスに対してコンパイルすることが含まれます。現在のコンテキスト クラスローダー階層のダンプ:

4

1 に答える 1

1

VerifyError は実行時の無効なバイトコードの結果であり、通常はコンパイルされたものとは異なるライブラリ バージョンを使用した結果です。多くの場合、あるビルド バージョンのメソッド シグネチャが別のビルド バージョンと異なるため、JVM が実行できないことを実行しようとするため、代わりに VerifyError がスローされます。

コンパイルした Apache ライブラリが、プログラムを実行しているライブラリと異なるため、VerifyError が発生する可能性が最も高くなります。実行に使用したのと同じライブラリ バージョンでビルドを再コンパイルします。

于 2012-06-11T03:22:17.740 に答える