我的 IDE 中有两个单独的项目,分别用于代理和用于查找目标 VM 并加载代理 JAR 的加载程序。
- 构建代理项目时,生成的代理 JAR 工件被复制到加载器的资源文件夹中。
- 构建加载器项目时,加载器 JAR 包含加载器代码和其中的代码
agent.jar
。
生成的可运行加载器结构如下所示:
loader.jar
├── META-INF
│ └── MANIFEST.MF
├── me.domain.loader
│ └── Main.class
└── agent.jar
├── META-INF
│ └── MANIFEST.MF
└── me.domain.agent
└── Agent.class
根据VirtualMachine#loadAgent(java.lang.String)规范,我需要提供包含代理作为第一个参数的 JAR 的路径。
但是,使用时Main.class.getResource("/agent.jar").getPath()
我得到一个AgentLoadException: Agent JAR not found or no Agent-Class attribute
. 这样做的正确方法是什么?