Не могу заставить -javaagent работать без ошибок - PullRequest
3 голосов
/ 26 марта 2012

Я пытаюсь создать простую программу Java-агента, прежде чем реализовать реальную вещь.Я не могу заставить его бежать.Очевидно, у меня есть какая-то проблема конфигурации или пути к классамНикакие поиски и попытки не привели бы меня к проблеме.

Если я бегу:

java -cp ./demoAgent.jar -javaagent: ./ demoAgent.jar com.kingtigerbooks.demoMod.Main

Я получаю следующую ошибку:

Exception in thread "main" java.lang.ClassNotFoundException: com.kingtigerbooks.demoAgent.Agent
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:280)
    at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)
FATAL ERROR in native method: processing of -javaagent failed
Abort trap

Я запускаю это на своем Mac.Файл jar с агентом находится в текущем каталоге.Манифест для файла jar выглядит следующим образом:

Manifest-Version: 1.0
Premain-class: com.kingtigerbooks.demoAgent.Agent
Can-Redefine-Classes: true

Если пахнет как проблема пути к классу, но, как вы можете видеть, я включил jar в путь к классу.Любая помощь будет оценена.Это очень простой проект.

Ответы [ 2 ]

4 голосов
/ 27 марта 2012

Проблема решена. У меня была плохая фляга Файл JAR агента не содержит класс агента. Собрав правильный файл JAR и указав полный путь к файлу в параметре javaagent, все это работает.

2 голосов
/ 26 марта 2012

когда вы запускаете агент, вы не добавляете jar агента к обычному пути к классам.

в качестве примечания, вы можете добавить -verbose:class в командную строку, чтобы получитьинформация о процессе загрузки класса.

...