Ошибка Java: строка EventDispatchThread.run (): недоступно [локальные переменные недоступны] - PullRequest
5 голосов
/ 22 февраля 2011

Я получаю следующую ошибку, когда пытаюсь запустить свой код в отладчике.

EventDispatchThread.run() line: not available [local variables unavailable]

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

Это утверждение кажется сбойным, и я не могу войти в конструктор с помощью отладчика:

Satellite satellite = new Satellite();

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

Вот части реализации класса Satellite:

package tags;

import main.*;
import xml.*;

public class Satellite extends XMLElement {

    public static final String[] ATTRIBUTES = {
        "XmlFileVersion",
        "SatelliteName",
        "xmlns:xsi=@xmlns_xsi",
        "xsi:noNamespaceSchemaLocation=@xsi_noNamespaceSchemaLocation"
    };

    public Satellite() {
        super(ATTRIBUTES);
        setTopLevelElement();

        setAttribute("XmlFileVersion",ValueCenter.Satellite_XmlFileVersion());
        setAttribute("SatelliteName",ValueCenter.Satellite_SatelliteName());
        addElement(new SubSystemList());
    }
}

Я локализовал проблему где-то в строке addElement(new SubSystemList());.Я добавил точку останова здесь и снова попытался шагнуть или перешагнуть, и теперь я получил ClassNotFoundException.Курсор отладки переходит в пустое окно, где «Источник не найден».написано, но Источник доступен на 100%, и я также получил соответствующие файлы .class.Другое дело, что Eclipse IDE не выдает ошибок при проверке синтаксиса.

Я не понимаю этого.Что может вызвать эти ошибки и почему я не могу использовать отладчик для обхода вызовов методов?

Я обновил Eclipse Helios SR1 для Java Devs и установил последнюю версию Java на свой компьютер.

Я знаю, что код где-то здесь имеет бесконечный цикл, потому что я получаю исключение StackOverflowError, если я запускаю его без отладчика.Но в любом случае, разве не должно быть возможным отладку кода, чтобы исследовать настоящую проблему?Почему отладчик аварийно завершает работу с ошибками или исключениями, отличными от запуска без отладчика?

btw: только один поток и последовательное выполнение.

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

Редактировать 1:

Некоторые дополнительные сведения.Моя рабочая область имеет два проекта.В одной есть основная программа со сателлитом и другие.В другом проекте у меня есть много вспомогательных классов, таких как этот XMLElement.Эта структура работает для многих классов.

Кстати: я могу войти в метод XMLElement.setAttribute, но не могу войти в XMLElement.addElement.

Другая странная вещь заключается в том, чтоSatellite находится в том же проекте, что и основной класс, но также невозможно войти в конструктор.

Может быть, это поможет?

Ответы [ 3 ]

5 голосов
/ 22 февраля 2011

В Eclipse: щелкните правой кнопкой мыши проект и выберите Properties.

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

debugger settings

Кроме того, найдите свою конфигурацию запуска с помощью Run > Run Configurations ..., выберите вкладку Source и убедитесь, что текущий проект находится в списке источников. Если нет, нажмите Add... > Java Project ...

0 голосов
/ 18 февраля 2015

Я решил эту проблему, исправив код Java Swing, который выдавал исключение NullPointerException.

0 голосов
/ 15 сентября 2014

Строка EventDispatchThread.run (): недоступно.Это распространенное сообщение об ошибке для разработчика настольных приложений Java, которые в основном работают в Swing.Я также получил то же сообщение об ошибке, но описанный вами шаг не решает мою проблему. Я получил то же сообщение об ошибке для другой проблемы. Это было OutOfMemoryError. Поэтому, когда вы получаете это сообщение об ошибке, вам нужно найти проблему, и онане из-за какой-то конкретной проблемы.

...