Подтвердить что ты не робот

Исключение в ошибке инициализации

Я использую Netbeans. Я сделал некоторые вещи с привязками, и теперь, когда я запускаю свою программу, прежде чем она даже инициализирует форму, это дает мне ошибку

Исключение в основной теме потока - это закрытие до того, как форма еще еще является объектом инициализации. Форма еще не является объектом. Каждая строка в моей 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>       

Пожалуйста, помогите, я не понимаю. Какая информация вам нужна от меня?

edit: кажется, что все это код, который я не могу коснуться. Я должен сказать, что это началось с того, что netbeans добавили около 200 недопустимых импортных "import jCheckbox1", которые я удалил.

4b9b3361

Ответ 1

Вы получаете 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.

Ответ 2

Надеюсь, что это поможет...

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: ошибка компиляции, инициализатор должен иметь возможность нормально завершить

static{
        throw new RuntimeException();
}

В основном это сводится к следующему:

  • Внутри статического блока каждое проверенное исключение ДОЛЖНО иметь обработчик.
  • Если возникло RuntimeException, оно будет завершено в ExceptionInInitializerError, а затем будет выбрано последнее.

Это имеет смысл, поскольку КЛАСС ДОЛЖЕН БЫТЬ ЗАВЕРШЕНА ИНИЦИАЛИЗАЦИЮ НОРМАЛЬНО. Если это будет проблемой, это должно быть категоризировано как ошибка (из которой восстановление обычно затруднено или невозможно), а не исключение (которое обычно восстанавливается)...

Ответ 3

@Christian Ullenboom 'правильно.

Я предполагаю, что код OBD2nerForm, который вы опубликовали, представляет собой статический блок инициализатора и что он все сгенерирован. Основываясь на этом и на трассе стека, кажется вероятным, что сгенерированный код отключается, потому что он нашел какой-то компонент вашей формы, который не имеет того типа, который он ожидает.

Я попытался бы сделать следующее:

  • Google для отчетов о похожих проблемах с генерируемыми формами NetBeans.
  • Если вы используете старую версию NetBeans, просмотрите страницы с исправленными ошибками для более поздних выпусков. Или просто обновите попытку более новой версии, чтобы убедиться, что проблема устранена.
  • Попробуйте вырезать биты из формы, пока проблема не исчезнет... и попытайтесь выяснить, какова настоящая причина.
  • Запустите приложение под отладчиком, чтобы выяснить, что происходит (некорректно). Просто знание имен классов может помочь. И, глядя на переменные экземпляра объектов, можно обнаружить больше; например какой конкретный компонент формы вызывает проблему.

Мое подозрение в том, что основная причина - это комбинация чего-то необычного (или неправильного) с вашим дизайном формы и ошибок в генераторе формы NetBeans, который не справляется с вашей формой. Если вы можете понять это, обходной путь может проявить себя.

Ответ 4

Я обнаружил, что привязал jFormattedCheckBox1.foreground к jCheckBox1 [$ {selected}].... это была проблема. Благодарим вас за помощь.

Кажется, что цвет не должен быть привязан к логическому. Я предполагаю, что привязки - это "предварительная функция"?

Я нашел проблему, удалив все элементы управления, затем выполнив, затем отменив, а затем удалив один за раз. Когда я обнаружил оскорбительный контроль, я изучил свойства.

Ответ 5

Везде, где есть ошибки или исключения в статических блоках, это исключение будет выброшено. Чтобы Throwable.getCause() причину этого исключения, просто используйте Throwable.getCause() чтобы узнать, что не так.