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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Перейдите на панель управления Java / Параметры Java / Java Runtime / View / User / Runtime Parameters

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

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

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

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

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

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

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

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

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

Средство просмотра апплетов поддерживает параметры отладки.

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

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

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

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

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

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

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

Давайте будем гением компьютера.