7

前もってお詫び申し上げますが、私はこれまでこのエラーを見たことがなく、何を含めればよいかわかりません。NetBeans を使用していますが、突然次のエラーが発生し始めました。

Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class: market/CostOperations, method: <init> signature: ()V) Constructor must call super() or this()
            at Bluebuild.Main.refreshTables(Main.java:748)
            at Bluebuild.Main.formComponentShown(Main.java:649)
            at Bluebuild.Main.access$100(Main.java:28)
            at Bluebuild.Main$2.componentShown(Main.java:374)
            at java.awt.Component.processComponentEvent(Component.java:6095)
            at java.awt.Component.processEvent(Component.java:6043)
            at java.awt.Container.processEvent(Container.java:2041)
            at java.awt.Window.processEvent(Window.java:1836)
            at java.awt.Component.dispatchEventImpl(Component.java:4630)
            at java.awt.Container.dispatchEventImpl(Container.java:2099)
            at java.awt.Window.dispatchEventImpl(Window.java:2478)
            at java.awt.Component.dispatchEvent(Component.java:4460)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

何が起こったのかわかりません。market/CostOperations も変更しませんでした。

ただし、コンストラクタは次のとおりです。

public CostOperations() throws ParserConfigurationException, SAXException, IOException {

        //Open the xml file
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        f = new File(dbName);
        doc = builder.parse(f);
        System.out.println(f.canWrite());

        //Create the XPath
        XPathFactory xpfactory = XPathFactory.newInstance();
        path = xpfactory.newXPath();

    }

デバッグ モードでは、次のようになります。

debug:
Have no FileObject for C:\Program Files (x86)\Java\jdk1.6.0_20\jre\lib\sunrsasign.jar
Have no FileObject for C:\Program Files (x86)\Java\jdk1.6.0_20\jre\classes

エラーの原因とその修正方法を知る必要があるだけです。ありがとう!

4

7 に答える 7

9

AVerifyErrorは、バイトコードが無効であることを意味します。これは、コンパイラの問題を示しています。それがなくなることを期待してすべてを再構築してみますが、それ以外の場合はバグを報告する必要があります。を介して手動でスーパークラス コンストラクターを呼び出すにはバイトコードが必要ですが、ソースinvokenonvirtual superclass/<init>()Vに追加する必要はありませんsuper();。コンパイラーが処理する必要があります。

于 2010-06-11T00:10:27.853 に答える
1

これは間違いなくコンパイラの問題です。生成されたバイトコードのバイナリ形式が異なります。

これを解決するには: プロジェクトを右クリック -> プロパティ -> ソース -> ソース/バイナリ形式

コードに適した形式に変更してください。

于 2012-11-05T14:29:50.947 に答える
1

これが Java コンパイラのバグであるとは思えません。そのようなことは、おそらく他の誰かが気づき、バグとして報告されたでしょう。ただし、ファイルを再コンパイルし、 を使用javapしてバイトコードを逆アセンブルすることで、これを確認できます。コンストラクター コードで次の命令を探します。

    invokespecial #1 <Method java.lang.Object()>

コンパイラがバイトコードを書き込んだ後に、何かがバイトコードを変更している可能性が高いと思います。可能性としては、バイトコードを変更してプロファイリング フックを注入するプロファイラーや、依存関係やカット ポイントなどを注入する注釈プロセッサが含まれます。

于 2010-06-11T00:59:32.677 に答える
0

検証済み:コンパイラのバグ。

于 2010-06-11T00:18:42.440 に答える
0

super()エラーが示すように、コンストラクターの先頭にa を入れてみてください。

私はそれが通常推論され、それを書くための制約なしで追加されると思っていました.おそらくのスーパークラスにCostOperationsは空のコンストラクターがありません..

于 2010-06-11T00:07:19.603 に答える
0

これは、Netbeans で私に起こりました。NetBeans では、「リファクタリング コピー」なしで同じディレクトリに .java ファイルをコピーしようとすると、新しいファイルが「YourJavaFile_1.java」として配置され、問題が発生します。しかし、そのファイルを「リファクタリングコピー」でコピーすれば問題ありません。

名前は「YourJavaFile1.java」ですが、リファクタリングされています。

于 2013-11-07T07:33:08.973 に答える