本物を実装する前に、単純な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を含めました。どんな助けでもいただければ幸いです。その非常に単純なプロジェクト。