在提前道歉,但我从来没有见过这个错误,不知道是什么,包括。我使用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)

我还没有线索发生了什么。我甚至没有改变市场/ 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

我只需要知道是什么原因造成的错误,以及如何解决它。谢谢!

有帮助吗?

解决方案

一个VerifyError手段字节码是无效的,它指向一个编译器的问题。我会尝试在它消失的希望重建的一切,但在其他方面应提交的bug。字节码是需要通过invokenonvirtual superclass/<init>()V手动调用父类的构造函数,但你不应该需要在源添加super();,编译器应该处理

其他提示

我会认真疑问,这是一个Java编译器错误。类似的东西很可能已经注意到了别人,报告中的错误。但是你可以通过重新编译文件并使用javap拆卸字节码验证这一点。查找在构造代码下面的指令:

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

我认为这更可能是一些被修改的字节码的之后的编译器写他们。可能性包括一些分析器,被修改的字节码注入仿形钩,或者被注入依赖一些注释处理器,切割点,等等。

这绝对是一个编译器的问题:生成的字节码具有不同的二进制格式

要解决这个问题: 该项目点击右键 - >属性 - >来源 - >源代码/二进制格式

更改它的任何格式适合于您的代码。

刚刚尝试把一个super()在你的构造为错误状态的开始。

我以为它通常推断,没有约束加入到写出来,也许CostOperations的超类没有任何空的构造..

验证:编译错误

这发生在我Netbeans中。在NetBeans中,当您试图复制在同一个目录下一个.java文件没有“重构副本”,它把新文件“YourJavaFile_1.java”和问题occures。但是,如果你复制与“重构副本”这个文件,是没有问题的。

它给出的名称为 “YourJavaFile1.java”,但与重构。

本人认为它可能会引起如在类/构造访问指示符不匹配的结果。我只是解决了其中的类与包访问符声明的是一个类似的问题,但它的构造函数声明为public。

简单地使构造也有一个包访问符解决了这个问题。

class Ngram{

    public Ngram(String str, int count){
        ngram = str;
        freq = count;
    }

    String ngram;
    int freq;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top