在实现真实的东西之前,我正在尝试创建一个简单的 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 包含在类路径中。任何帮助,将不胜感激。这是一个非常简单的项目。