Как прикрепить javaagent ко всем java-апплетам
Я написал пример java-агента, который создает файл "hello world" в определенном месте. Я хочу, чтобы он запускался всякий раз, когда запускается любой Java-апплет (определенно, включая те, которые я сам не писал). Как мне это сделать?
Мой агент работает, когда я запускаю его вручную из командной строки (например, запускаю другой файл Java с агентом, к которому он подключен). В автоматическом режиме я попытался перейти на панель конфигурации Java -> Java -> Вид -> JRE. Настройки конфигурации -> установка необязательных аргументов для подключения моего агента, но, похоже, это не сработает. Я перехожу с FF куда-нибудь, что заставляет меня запускать Java-апплет, но файл не создается.
Я предполагаю, что упускаю что-то простое здесь, потому что, когда я пытаюсь гуглить этих людей вокруг различных форумов, кажется, что они отвечают на это, как будто это самая тривиальная вещь: "просто используйте -javaagent, узнайте больше об этом в этом (ссылка) ".
Если это вообще помогает, то это дополнительный параметр, который я добавляю на панели конфигурации (который работает, когда я использую его вручную): -javaagent:C:\Users\admin\workspace\poc\bin\poc\myagent.jar
Обновление: я обнаружил, что могу установить переменную среды (JAVA_TOOL_OPTIONS) в -javaagent:(agentpath). Еще раз это работает безупречно с локальными приложениями Java, но теперь, когда я перехожу на веб-страницу с апплетом, Firefox автоматически закрывается. IE заявляет, что веб-страница не работает. Chrome даже не отображает апплет. Сам агент в этот момент ничего не делает - у него просто пустой метод premain. Кто-нибудь?
1 ответ
Установка переменной среды JAVA_TOOLS_OPTIONS=-javagent:(путь) является правильным.
Моя ошибка заключалась в том, что я неправильно создал файл.jar. Как только я это исправил (просто использовал инструмент jar.exe, чтобы сделать мой.jar), он работал правильно - локально и на всех апплетах через firefox. До этого именно Firefox зависал или зависал при обращении к апплету.