初始化程序错误中的异常

时间:2010-07-30 22:26:11

标签: java binding pack

我正在使用Netbeans。我用绑定做了一些事情,现在每当我开始我的程序时,在它甚至初始化表单之前,它都会给我一个错误

线程main中的异常是在表单甚至是初始化对象之前发生的。表格甚至还不是一个对象。 main()中的每一行都会导致异常。随机的东西。我根本不明白。

这是错误。

    Exception in thread "main" java.lang.ExceptionInInitializerError
        at obd2ner.main(obd2ner.java:26)
Caused by: java.lang.ClassCastException
        at java.lang.Class.cast(Class.java:2990)
        at org.jdesktop.beansbinding.Binding.convertForward(Binding.java:1312)
        at org.jdesktop.beansbinding.Binding.getSourceValueForTarget(Binding.java:844)
        at org.jdesktop.beansbinding.Binding.refreshUnmanaged(Binding.java:1222)
        at org.jdesktop.beansbinding.Binding.refresh(Binding.java:1207)
        at org.jdesktop.beansbinding.AutoBinding.tryRefreshThenSave(AutoBinding.java:162)
        at org.jdesktop.beansbinding.AutoBinding.bindImpl(AutoBinding.java:199)
        at org.jdesktop.beansbinding.Binding.bindUnmanaged(Binding.java:959)
        at org.jdesktop.beansbinding.Binding.bind(Binding.java:944)
        at org.jdesktop.beansbinding.BindingGroup.bind(BindingGroup.java:143)
        at OBD2nerForm.initComponents(OBD2nerForm.java:731)
        at OBD2nerForm.<init>(OBD2nerForm.java:75)
        at Status.<clinit>(Status.java:41)
        ... 1 more
Java Result: 1

OBD2nerForm第731行是bindingGroup.bind(); 有时它会在pack();

上出错

“main”中的异常甚至看起来都不相关,因为它会在程序运行后立即发生,每次我注释掉它跳转到下一行

        public void actionPerformed(ActionEvent evt) {
            jFormattedTextField2ActionPerformed(evt);
        }
    });

    jLabel8.setText("Data In Que:");

    jLabel9.setFont(new Font("DejaVu Sans", 0, 14));
    jLabel9.setText("FFFFFFFFFFFFFFFFFFFF");

    GroupLayout jPanel5Layout = new GroupLayout(jPanel5);
    jPanel5.setLayout(jPanel5Layout);
    jPanel5Layout.setHorizontalGroup(
        jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
        .add(jPanel5Layout.createSequentialGroup()
            .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
                .add(jPanel5Layout.createSequentialGroup()
                    .add(19, 19, 19)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jLabel7)
                        .add(jLabel5)
                        .add(jLabel6))
                    .add(18, 18, 18)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
                        .add(GroupLayout.TRAILING, jFormattedTextField1, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(GroupLayout.TRAILING, jCheckBox1)
                        .add(GroupLayout.TRAILING, jCheckBox11))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jFormattedTextField2, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(jCheckBox12)
                        .add(jCheckBox2))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jFormattedTextField3, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(jCheckBox13)
                        .add(jCheckBox3))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jFormattedTextField4, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(jCheckBox14)
                        .add(jCheckBox4))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jFormattedTextField5, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(jCheckBox15)
                        .add(jCheckBox5))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jFormattedTextField6, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(jCheckBox16)
                        .add(jCheckBox6))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jFormattedTextField7, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(jCheckBox17)
                        .add(jCheckBox7))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jFormattedTextField8, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(jCheckBox18)
                        .add(jCheckBox8))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
                        .add(GroupLayout.TRAILING, jFormattedTextField9, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
                        .add(GroupLayout.TRAILING, jCheckBox19)
                        .add(GroupLayout.TRAILING, jCheckBox9))
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
                        .add(jCheckBox20)
                        .add(jCheckBox10)
                        .add(jFormattedTextField10, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)))
                .add(jPanel5Layout.createSequentialGroup()
                    .add(4, 4, 4)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
                        .add(jPanel5Layout.createSequentialGroup()
                            .add(jLabel8)
                            .addPreferredGap(LayoutStyle.RELATED)
                            .add(jLabel9, GroupLayout.PREFERRED_SIZE, 256, GroupLayout.PREFERRED_SIZE))
                        .add(jSeparator1, GroupLayout.PREFERRED_SIZE, 474, GroupLayout.PREFERRED_SIZE))))
            .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        .add(GroupLayout.TRAILING, jPanel5Layout.createSequentialGroup()
            .addContainerGap(346, Short.MAX_VALUE)
            .add(jToggleButton3, GroupLayout.PREFERRED_SIZE, 132, GroupLayout.PREFERRED_SIZE)
            .addContainerGap())
    );
    jPanel5Layout.setVerticalGroup(
        jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
        .add(jPanel5Layout.createSequentialGroup()
            .addContainerGap()
            .add(jPanel5Layout.createParallelGroup(GroupLayout.BASELINE)
                .add(jLabel5)
                .add(jFormattedTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField4, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField5, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField6, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField7, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField8, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField9, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .add(jFormattedTextField10, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(LayoutStyle.RELATED)
            .add(jSeparator1, GroupLayout.PREFERRED_SIZE, 0, GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(LayoutStyle.RELATED)
            .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
                .add(jCheckBox3)
                .add(jCheckBox1)
                .add(jCheckBox2)
                .add(jCheckBox4)
                .add(jCheckBox5)
                .add(jCheckBox6)
                .add(jCheckBox7)
                .add(jCheckBox8)
                .add(jCheckBox9)
                .add(jLabel6)
                .add(jCheckBox10))
            .addPreferredGap(LayoutStyle.RELATED)
            .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING)
                    .add(jLabel7)
                    .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING)
                        .add(jCheckBox13)
                        .add(jCheckBox12)
                        .add(jCheckBox11)
                        .add(jCheckBox14)
                        .add(jCheckBox15)
                        .add(jCheckBox16)
                        .add(jCheckBox17)
                        .add(jCheckBox18)
                        .add(jCheckBox19)))
                .add(jCheckBox20))
            .addPreferredGap(LayoutStyle.RELATED, 42, Short.MAX_VALUE)
            .add(jPanel5Layout.createParallelGroup(GroupLayout.BASELINE)
                .add(jToggleButton3)
                .add(jLabel8)
                .add(jLabel9))
            .addContainerGap())
    );

    jTabbedPane1.addTab("tab6", jPanel5);

    add(jTabbedPane1, BorderLayout.CENTER);

    bindingGroup.bind();

    pack();
}// </editor-fold>       
请帮助,我不明白。您需要我提供哪些信息?

编辑:似乎都是我无法触及的代码。我应该补充说,这开始于netbeans添加了大约200个无效导入“import jCheckbox1”,我删除了。

8 个答案:

答案 0 :(得分:109)

如果静态初始化程序块出错,则会出现ExceptionInInitializerError。

class C
{
  static
  {
     // if something does wrong -> ExceptionInInitializerError
  }
}

因为静态变量是在静态块中初始化的,所以也存在这些错误的来源。一个例子:

class C
{
  static int v = D.foo();
}

=&GT;

class C
{
  static int v;

  static
  {
    v = D.foo();
  }
}

因此,如果foo()变为狂野,则会出现ExceptionInInitializerError。

答案 1 :(得分:10)

希望这会有所帮助......

class SomeClass{
  //Code snippet here...
}

代码段1:绝对正常 - 处理了所有已检查的异常

static void m1(){
        try{
            throw new Exception();
        } catch(Exception e){
            System.out.println(e);
        }
}
static{
        m1();
}

代码段2:不会编译 - 未报告的已检查异常

static void m1() throws Exception{
        throw new Exception();
}
static{
        m1();
}

代码段3:确定(请参阅代码段1)

static void m1() throws Exception{
        throw new Exception();
}
static{
        try{m1();}
        catch(Exception e){
            System.out.println(e);
            //or whatever
        }
}

代码片段4:编译错误,initilalizer必须能够正常完成

static{
        throw new RuntimeException();
}

基本上归结为:

  1. 在静态块内,每个检查过的异常必须有一个处理程序。
  2. 如果发生RuntimeException,它将被包装在ExceptionInInitializerError中,然后抛出后者。
  3. 这是有道理的,因为一个类通常应该完全初始化。如果这恰好是一个问题,那么应将其归类为错误(通常很难或不可能进行恢复),而不是异常(通常可以恢复)......

答案 2 :(得分:4)

@Christian Ullenboom的解释是正确的。

我猜测你发布的OBD2nerForm代码是一个静态初始化程序块,它是全部生成的。基于此和堆栈跟踪,似乎生成的代码可能会跳闸,因为它发现表单中的某些组件没有预期的类型。

我会尝试以下方法来诊断:

  • Google报告了与NetBeans生成表单类似的问题。
  • 如果您运行的是旧版本的NetBeans,请浏览“已修复的错误”页面以获取更新版本。或者只是升级尝试更新的版本,看看是否能解决问题。
  • 尝试从表单设计中删除一些内容,直到问题“消失”......然后试着找出真正的原因是什么。
  • 在调试器下运行应用程序,以找出(错误地)类型转换为什么。只知道类名可能有所帮助。查看对象的实例变量可能会发现更多;例如哪个特定的表单组件导致问题。

我怀疑,根本原因是表单设计有点不寻常(或不正确)的组合,以及NetBeans表单生成器中没有处理表单的错误。如果你能弄清楚,解决方法可能会显露出来。

答案 3 :(得分:2)

我发现我已将jFormattedCheckBox1.foreground绑定到jCheckBox1 [$ {selected}] ....这就是问题所在。谢谢你的帮助。

似乎颜色不能绑定到布尔值。我想绑定是一个“先进的功能”?

我通过删除所有控件,然后运行,然后撤消然后一次删除一个来找到问题。当我发现违规控制时,我检查了属性。

答案 4 :(得分:0)

只要静态块中有错误或异常,就会抛出该异常。要获取导致此异常的原因,只需使用 path('<slug:slug>/object/new', views.ObjectCreateView.as_view(), name='add'), 知道出了什么问题。

答案 5 :(得分:0)

Retrofit最近更新到2.7.1版本。之后,Android 4.x个客户端崩溃了。参见https://stackoverflow.com/a/60071876/2914140

Retrofit降级为2.6.4。

答案 6 :(得分:0)

确保项目没有任何错误。从工作空间中删除项目(将工作空间从git文件夹中移至另一个目录),然后再次导入。

答案 7 :(得分:0)

我遇到了同样的错误,这是由于Lombok的版本较旧。 检查并更新您的龙目岛版本, 龙目岛的变化

v1.18.4-对龙目岛的JDK10 / 11支持进行了许多改进。