Как я могу проверить состояние символа отладки в Eclipse? - PullRequest
7 голосов
/ 01 июня 2011

При обсуждении другого вопроса Я задал вопрос, @Aaron Digulla указал на следующее:

Если вы установили Java SDK, должен быть файл "src.zip"в корневом каталоге установки Java.Если он отсутствует, загрузите Java снова.Eclipse должен автоматически найти источник и показать его вам, когда вы открываете тип JTable (или когда вы щелкаете по строке в трассировке стека).

Файл src.zip присутствует для меня,но я все еще не могу получить доступ к источнику JTable, как сказал Аарон.В чем может быть проблема?Как я могу решить эту проблему с Eclipse?

«Неизвестный источник» беспокоит меня, хотя.это означает, что ваша версия Java не имеет отладочных символов.Убедитесь, что вы a) используете SDK при разработке, b) что ваш SDK содержит символы отладки, c) не говорите команде java удалять символы отладки при загрузке классов.

a)Я использую Eclipse, почему я не должен использовать SDK?

b) Как узнать, содержит ли мой SDK символы отладки?И если это не так, как я могу их добавить?

в) Как я могу проверить, говорит ли Eclipse java, чтобы удалить символы отладки?

Извините за эти банальные вопросы, ноЯ чувствую, что не до конца понимаю процесс разработки Java.

Ответы [ 2 ]

6 голосов
/ 01 июня 2011

a) Eclipse поставляется с собственным компилятором Java, поэтому, если вы используете среду выполнения Java, у вас не возникнет много проблем, за исключением того, что дополнительные функции, такие как jarsigner и, возможно, исходный код JRE могут отсутствовать. Лучший способ проверить вашу установку - через менеджер пакетов; однако, если вы установили каким-либо другим способом, тщательное наблюдение за каталогами обычно различает их (см. ниже).

b) Библиотеки JRE обычно компилируются без наличия символов отладки. В библиотеках SDK они обычно есть. Отладка Java выполняется путем запуска JVM с параметрами командной строки, которые открывают порт отладки. SDK связывается с JVM, запрашивая точки останова через этот порт. Позже, если вы решите выполнить шаг JVM, он также отправит команды отладки step / jump / rewind через этот порт. Символы «отладки» на самом деле являются таблицами байт-кода JVM, которые указывают, какая строка исходного кода фактически начинается с определенной инструкции байт-кода. Это позволяет отладчикам связывать запущенные байт-коды с номерами строк в исходном исходном коде.

в) Проверьте это с помощью (из меню) Window-> Preferences (в столбце селектора), разверните «Java», разверните «Build Path» в «Java» и выберите «ClassPath variable». Вы увидите несколько переменных, включая переменную с именем «JRE_SRC», которая должна указывать на файл src.zip, содержащий общедоступный исходный код библиотеки JRE. Рекомендуется одновременно проверять JRE_LIB.

Домашний каталог JDK обычно содержит подкаталог "bin" и подкаталог "jre", поэтому, если вы видите только подкаталог "bin", вероятность того, что вы находитесь в домашнем каталоге JRE. С этим знанием, надеюсь, вы сможете понять все остальное.

1 голос
/ 01 июня 2011

Перейдите в настройки («Окно» -> «Настройки») и введите «JRE» в поле поиска.

Выберите «Установленные JRE». Убедитесь, что Java Runtime использует ту версию Java, которую вы ожидаете.

Если это так, выберите его, нажмите «Изменить». Значок «rt.jar» должен иметь небольшой текстовый символ сверху (например, он должен отличаться от dnsns.jar).

Если этого не произойдет, нажмите «Восстановить настройки по умолчанию». Если это не сработает, дважды проверьте путь.

Это также должно решить ваши другие проблемы.

Чтобы проверить, содержит ли класс символы отладки, декомпилируйте его с помощью javap -v (см. Этот вопрос: Проверьте, содержит ли байт-код Java символы отладки )

Некоторые реализации Java позволяют игнорировать символы отладки при загрузке классов. Это может вызвать «Неизвестный источник» для классов, которые содержат символы. Я был уверен, что есть такая возможность для Sun Java, но я больше не могу ее найти.

...