Исключение в инициализаторе, вызванное исключением нулевого указателя - PullRequest
0 голосов
/ 21 сентября 2011

Понятия не имею, почему это происходит, но однажды все было хорошо. Теперь я пытаюсь запустить код и получаю ExceptionInInitializerError. Вот строка, которая получает это:

final JButton connect = new JButton("Connect");

Трассировка стека:

Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
        at program.gui.Chat.<init>(Chat.java:44)
        at program.gui.GUI.actionPerformed(GUI.java:176)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
95)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242
)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:8
09)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMen
uItemUI.java:850)
        at java.awt.Component.processMouseEvent(Component.java:6289)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6054)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4652)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577
)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
        at java.awt.EventQueue.access$000(EventQueue.java:85)
        at java.awt.EventQueue$1.run(EventQueue.java:603)
        at java.awt.EventQueue$1.run(EventQueue.java:601)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:617)
        at java.awt.EventQueue$2.run(EventQueue.java:615)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.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)
Caused by: java.lang.NullPointerException
        at GPAMaster.locale.Locale.get(Locale.java:30)
        at GPAMaster.locale.Messages$Chat.<clinit>(Messages.java:84)
        ... 39 more

Ответы [ 3 ]

1 голос
/ 21 сентября 2011

Похоже, что на самом деле проблема в статическом конструкторе для Messages.Chat.Посмотрите на строки сообщения 84.java и строку 30. Locale.java. Это соответствующие строки - я подозреваю, что ваш Chat GUI несколько неактуален.но это может быть что-то вроде отсутствия всех локализованных сообщений для вашей локали.

0 голосов
/ 21 сентября 2011

это ключевые утверждения из исключения

Caused by: java.lang.NullPointerException at GPAMaster.locale.Locale.get(Locale.java:30) at GPAMaster.locale.Messages$Chat.<clinit>(Messages.java:84) ... 39 more:

У вас есть нулевой указатель в некотором статическом коде инициализации, который вызывается перед вашим конструктором ... Решите эту проблему, и она должна снова заработать:)

0 голосов
/ 21 сентября 2011

Вы можете увидеть строку подсказки о проблеме внизу этой трассировки стека:

Caused by: java.lang.NullPointerException
GPAMaster.locale.Locale.get(Locale.java:30)
    at GPAMaster.locale.Messages$Chat.<clinit>(Messages.java:84)
    ... 39 more

Таким образом, это означает, что у вас есть класс с именем Chat, вложенный в класс с именем Messages, а в строке 84 вы вызываете Locale.get(), который получает NullPointerException в строке 30. Метод <clinit> является статическим инициализатором для класса Chat - это компиляторсгенерированный метод, который содержит любые статические блоки или инициализаторы для статических методов.

Если вы покажете нам Messages.java вокруг строки 84 и Locale.java вокруг строки 30, мы могли бы помочь больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...