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

Как вы отлаживаете Java-апплеты?

В настоящее время единственной информацией, которую я имею, является однострочное сообщение об ошибке в строке состояния браузера.

Знаете ли вы, как я мог бы получить трассировку стека, например?

4b9b3361

Ответ 1

Эта статья немного устарела, но по-прежнему актуальна (в том числе раздел "Отладка апплетов в Java Plug-in" ).

Изменить: возможно, лучший способ получить stacktraces - использовать консоль Java plugin. Если вы нажмете "t" в этом окне, вы увидите следующее:

Распечатывает весь существующий поток групп. Первая группа показана группой главный. ac - активный счет; Это - общее количество активных потоков в группе потоков и ее дочернем потоке групп. agc означает активную группу рассчитывать; это число активных дочерние группы потоков группы потоков. pri означает приоритет; это приоритет группы потоков. Следующий Группа main, другие группы потоков будут будет отображаться как Группа, где имя это URL-адрес, связанный с апплетом. Индивидуальные списки потоков будут показать имя потока, поток приоритет, живой, если поток жив или уничтожается, если поток находится в процесс уничтожения и демон если поток является потоком демона.

Другая команда, которую я использовал чаще всего с этой консоли, - это уровень трассировки от 0-5:

Здесь задаются параметры уровня трассы, как описано в следующем разделе, Трассировка и ведение журнала.

На этой странице вы увидите, что уровни выглядят так:

  • 0 - off
  • 1 - базовый
  • 2 - сеть, кеш и основные
  • 3 - безопасность, сетевая и основная
  • 4 - расширение, безопасность, сеть и основные
  • 5 - LiveConnect, расширение, безопасность, сеть, темп и основные

Эти инструменты могут быть довольно полезными, поскольку вы пытаетесь разгадать, что в мире попало в голову ваших апплетов. Я знаю, что они работали для меня.

Ответ 2

Помимо очевидного использования консоли Java и средства просмотра апплетов, начиная с версии 7 для обновления 6, вы можете использовать VisualVM который поставляется вместе с JDK (JDK_HOME/bin/visualvm). Он позволяет просматривать трассировки стека каждого потока и даже просматривать все экземпляры объектов.

AppletViewer очень удобен, вы можете сделать "Запуск as/Java Applet" из Eclipse для запуска или "Отладка As/Java Applet" для отладки ваших классов апплетов.

Однако иногда для отладки некоторых материалов, связанных с безопасностью, среда плагина браузера слишком отличается от приложения appletviewer. Здесь вы можете эффективно отлаживать апплеты в браузере:

1) Получить информацию об отладке для двоичных файлов

Резервное копирование файлов .jar из JRE_HOME/lib

(Загрузить и) Установите JDK для той же версии, что и JRE.

Скопируйте файлы .jar из JDK_HOME/jre/lib в JRE_HOME/lib

Файлы внутри JDK были скомпилированы с включенной информацией об отладке (информация о номере строки исходного кода, имена переменных и т.д.), а файлы JRE не имеют этой информации.

Без этого вы не сможете в значительной степени перейти на основной код класса в своем отладчике.

2) Включить отладку для Java Plug-in

Перейдите на панель управления Java/ Ява / Java Runtime Settings/ Посмотреть/ Пользователь/ Параметры времени выполнения

И добавьте опции для включения отладки. Что-то вроде этого:

-Djava.compiler=NONE -Xnoagent -Xdebug -Xrunjdwp:transport=dt_socket,address=2502,server=y,suspend=n

Интересные варианты: порт (используя здесь 2502, вы можете использовать практически любой свободный порт, просто запишите его позже) и suspend - если вам нужно отлаживать запуск апплета, загрузку классов и т.д., установите для этого значение "y". Таким образом, при доступе к странице апплета браузер будет заморожен, так как JVM немедленно приостанавливается, ожидая подключения отладчика.

3) Используйте свою любимую среду IDE для удаленного отладки Java Plug-in

В Eclipse, например, выберите "Run/Debug Configurations.../Remote Java Application"

Нажмите кнопку "Создать".

Убедитесь, что тип подключения - "Socket Attach", выберите localhost как хост, если ваш браузер локальный, и порт, который вы выбрали ранее (2502 в примере).

Возможно, вам придется включить src.zip в свой JDK на вкладке sources, чтобы иметь доступные источники ядра Java.

Сохраните конфигурацию, и как только ваш браузер запустит подключаемый модуль (с заблокированным JVM или нет), запустите удаленный отладчик, чтобы подключиться к подключаемой JVM, при открытии проекта, содержащего ваши источники апплетов.

Ответ 4

На консоли появятся следы стека из неперехваченных исключений. Это можно включить с панели управления Java (Advanced > Java console > Show console), или у некоторых браузеров есть различные опции или плагины для ее включения.

Вы можете подключить отладчик к запущенному процессу PlugIn.

Возможно, лучший способ - не отлаживать вообще. Напишите тесты. Напишите код, который не связан с ненужными предположениями - например, что вы работаете как апплет. К сожалению, большинство примеров кода GUI/апплета написано очень плохо.

Ответ 5

Неиспользуемые исключения отправляются на консоль. Вы также можете использовать System.out для записи собственных сообщений на консоль. Чтобы просмотреть результаты, вам нужно открыть консоль, щелкнув правой кнопкой мыши значок Java в systray и открыв консоль (обратите внимание, что это отличается от Microsoft VM).

Для правильной отладки апплетов вы можете настроить Eclipse для отладки апплетов. Щелкните правой кнопкой мыши исходный файл апплета и выберите "Отладка как апплет". (Если у вас есть параметры для апплета, вам нужно будет установить это.) Затем вы можете перейти через код апплета, поскольку вы будете отлаживать любой другой код Java.

Ответ 6

Я столкнулся с проблемой удаленной отладки апплетов, каждый раз, пытаясь подключиться к eclipse, его отказ от отказа отказался, моя версия jre была 64-разрядной и 32-битной затмение, когда я заменил 32-разрядную jre, она работала для меня. Кроме того, если мы установили как 32-битные, так и 64-битные версии jre, IE по умолчанию использует 64-разрядные jre для апплетов, chrome и FF могут использовать 32-разрядные версии jre.

Ответ 7

Для меня самым важным действием для получения отладки апплета в eclipse является установка в панели управления java (вкладка java) правильных двоичных файлов для использования, имеющих отладочные символы. Только JRE, включенные в jdk, имеют эти символы. Итак, чтобы отладить апплет в панели управления java, нажмите java, нажмите кнопку просмотра, после поиска правильного jre в папке jdk, для меня, например, "C:\Programmi\Java\jdk1.7.0_03\jre", и установите флажок только для проверки для этой записи. Это для меня чистый способ сделать то, что говорит Сами Койву.