В настоящее время единственной информацией, которую я имею, является однострочное сообщение об ошибке в строке состояния браузера.
Знаете ли вы, как я мог бы получить трассировку стека, например?
В настоящее время единственной информацией, которую я имею, является однострочное сообщение об ошибке в строке состояния браузера.
Знаете ли вы, как я мог бы получить трассировку стека, например?
Эта статья немного устарела, но по-прежнему актуальна (в том числе раздел "Отладка апплетов в Java Plug-in" ).
Изменить: возможно, лучший способ получить stacktraces - использовать консоль Java plugin. Если вы нажмете "t" в этом окне, вы увидите следующее:
Распечатывает весь существующий поток групп. Первая группа показана группой главный. ac - активный счет; Это - общее количество активных потоков в группе потоков и ее дочернем потоке групп. agc означает активную группу рассчитывать; это число активных дочерние группы потоков группы потоков. pri означает приоритет; это приоритет группы потоков. Следующий Группа main, другие группы потоков будут будет отображаться как Группа, где имя это URL-адрес, связанный с апплетом. Индивидуальные списки потоков будут показать имя потока, поток приоритет, живой, если поток жив или уничтожается, если поток находится в процесс уничтожения и демон если поток является потоком демона.
Другая команда, которую я использовал чаще всего с этой консоли, - это уровень трассировки от 0-5:
Здесь задаются параметры уровня трассы, как описано в следующем разделе, Трассировка и ведение журнала.
На этой странице вы увидите, что уровни выглядят так:
- 0 - off
- 1 - базовый
- 2 - сеть, кеш и основные
- 3 - безопасность, сетевая и основная
- 4 - расширение, безопасность, сеть и основные
- 5 - LiveConnect, расширение, безопасность, сеть, темп и основные
Эти инструменты могут быть довольно полезными, поскольку вы пытаетесь разгадать, что в мире попало в голову ваших апплетов. Я знаю, что они работали для меня.
Помимо очевидного использования консоли 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, при открытии проекта, содержащего ваши источники апплетов.
апплет просмотра поддерживает параметры отладки.
На консоли появятся следы стека из неперехваченных исключений. Это можно включить с панели управления Java (Advanced > Java console > Show console), или у некоторых браузеров есть различные опции или плагины для ее включения.
Вы можете подключить отладчик к запущенному процессу PlugIn.
Возможно, лучший способ - не отлаживать вообще. Напишите тесты. Напишите код, который не связан с ненужными предположениями - например, что вы работаете как апплет. К сожалению, большинство примеров кода GUI/апплета написано очень плохо.
Неиспользуемые исключения отправляются на консоль. Вы также можете использовать System.out для записи собственных сообщений на консоль. Чтобы просмотреть результаты, вам нужно открыть консоль, щелкнув правой кнопкой мыши значок Java в systray и открыв консоль (обратите внимание, что это отличается от Microsoft VM).
Для правильной отладки апплетов вы можете настроить Eclipse для отладки апплетов. Щелкните правой кнопкой мыши исходный файл апплета и выберите "Отладка как апплет". (Если у вас есть параметры для апплета, вам нужно будет установить это.) Затем вы можете перейти через код апплета, поскольку вы будете отлаживать любой другой код Java.
Я столкнулся с проблемой удаленной отладки апплетов, каждый раз, пытаясь подключиться к eclipse, его отказ от отказа отказался, моя версия jre была 64-разрядной и 32-битной затмение, когда я заменил 32-разрядную jre, она работала для меня. Кроме того, если мы установили как 32-битные, так и 64-битные версии jre, IE по умолчанию использует 64-разрядные jre для апплетов, chrome и FF могут использовать 32-разрядные версии jre.
Для меня самым важным действием для получения отладки апплета в eclipse является установка в панели управления java (вкладка java) правильных двоичных файлов для использования, имеющих отладочные символы. Только JRE, включенные в jdk, имеют эти символы. Итак, чтобы отладить апплет в панели управления java, нажмите java, нажмите кнопку просмотра, после поиска правильного jre в папке jdk, для меня, например, "C:\Programmi\Java\jdk1.7.0_03\jre", и установите флажок только для проверки для этой записи. Это для меня чистый способ сделать то, что говорит Сами Койву.