NoClassDefFoundError в Java-апплете на invokeLater () - PullRequest
1 голос
/ 22 сентября 2010

У меня есть апплет, который я создал с использованием NetBeans, он называется AKApplet. Он отлично работает в IDE, но когда я помещаю его на веб-страницу, он выдает следующую ошибку:

Exception in thread "Thread-15" java.lang.NoClassDefFoundError: AKApplet$2
    at AKApplet.run(AKApplet.java:675)

Апплет использует метод run () для загрузки некоторых данных в фоновом режиме, сохраняя при этом интерфейс пользователя отзывчивым. Довольно стандартные вещи. В строке 675 после загрузки данных я пытаюсь обновить компоненты пользовательского интерфейса, используя invokeLater():

public void run() {

    // ... data loads ...

    // line 675:
    javax.swing.SwingUtilities.invokeLater(new Runnable() {

        public void run() {
            userMessages.setText("Data loaded.");
            panelList.setVisible(true);
            validate();
            }
    });

}

Я пытаюсь обновить компоненты userMessages, JLabel и panelList, которые являются Panel. Я не думаю, что это заходит так далеко.

Кто-нибудь знает, что может происходить? На этом этапе апплет загружен, компоненты видны и обновлены и т. Д.

Ответы [ 3 ]

2 голосов
/ 22 сентября 2010

Убедитесь, что вы развертываете не только AKApplet.class, но также AKApplet$1.class, AKApplet$2.class и т. Д.

1 голос
/ 22 сентября 2010

Полагаю, я не понимаю, к чему относятся классы $. Существует только один класс AKApplet, нет внутренних классов . Статических определений также нет.

У меня есть два других определенных класса, но это отдельные классы:

class ThreadFlags { /*...*/ }

class DeleteButton extends JLabel { /*...*/ }

Также я проверил, что они находятся в файле AKApplet.jar на корневом уровне:

META-INF/MANIFEST.MF
META-INF/AKAPPLET.SF
META-INF/AKAPPLET.DSA
META-INF/
AKApplet.class
DeleteButton.class
ThreadFlags.class

Обновление: Хорошо, я нашел файлы AKApplet $ .class в каталоге / build / classes / проекта NetBeans. Я добавил их, и это работает. Спасибо за вашу помощь. Может кто-нибудь дать мне краткое объяснение, что это за файлы? Как я уже сказал, нет внутренних классов, которые я определил ...

0 голосов
/ 22 сентября 2010

Есть ли какие-либо статические определения во втором внутреннем классе AKApplet, которые могут генерировать любые исключения?

Исключения в статическом инициализаторе являются наиболее распространенной причиной NoClassDefFoundErrors после того, как вы убедились, что файл класса существует и находится в пути к классам.

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