[英]exception in initializer error in java when using Netbeans
我正在使用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();
上出错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
,我删除了它。
如果静态初始化程序块中出现问题,您将收到 ExceptionInInitializerError 。
class C
{
static
{
// if something does wrong -> ExceptionInInitializerError
}
}
因为静态变量是在静态块中初始化的,所以也有这些错误的来源。 一个例子:
class C
{
static int v = D.foo();
}
=>
class C
{
static int v;
static
{
v = D.foo();
}
}
所以如果 foo() 变得疯狂,你会得到一个 ExceptionInInitializerError。
希望这可以帮助...
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:OK(参见代码片段 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();
}
基本上它归结为:
这是有道理的,因为类应该能够正常完成初始化。 如果这恰好是一个问题,则应将其归类为错误(通常很难或不可能从中恢复)而不是异常(通常可以恢复)...
@Christian Ullenboom 的解释是正确的。
我OBD2nerForm
您发布的OBD2nerForm
代码是一个静态初始化程序块,并且它都是生成的。 基于此和堆栈跟踪,生成的代码似乎有可能出错,因为它发现表单的某些组件不具有它期望的类型。
我会执行以下操作来尝试诊断此问题:
我怀疑根本原因是您的表单设计有点不寻常(或不正确)的组合,以及 NetBeans 表单生成器中无法处理您的表单的错误。 如果你能弄清楚,一个解决方法可能会显露出来。
我发现我已经将jFormattedCheckBox1.foreground
绑定到jCheckBox1[${selected}]
.... 这就是问题所在。 感谢您的帮助。
似乎颜色不应该绑定到boolean
。 我猜绑定是一个高级功能?
我通过删除所有控件,然后运行,然后撤消然后一次删除一个来发现问题。 当我发现有问题的控件时,我检查了属性。
只要静态块中出现错误或异常,就会抛出这个异常。 要获取此异常的原因,只需使用Throwable.getCause()
即可知道出了什么问题。
Retrofit
最近更新到 2.7.1 版本。 之后, Android 4.x
客户端崩溃了。 请参阅https://stackoverflow.com/a/60071876/2914140 。
将Retrofit
降级到 2.6.4。
确保项目没有任何错误。 从工作区中删除项目(使工作区成为与 git 文件夹不同的目录)并再次导入。
我遇到了同样的错误,这是由于较旧的 Lombok 版本。 检查并更新您的 Lombok 版本,Lombok 的变化
v1.18.4 - 对 lombok 的 JDK10/11 支持进行了许多改进。
如果你使用的是 Mac M1 芯片和 room lib ,试试这个:在项目级别的 build.gradle 中,在 allprojects 中添加以下配置
allprojects {
repositories {
// ...
}
// ADD THE FOLLOWING
configurations.all {
resolutionStrategy {
force 'org.xerial:sqlite-jdbc:3.34.0'
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.