我想在 jp2launcher 上运行的 Java 小程序上启动 Java 代理。我设法使用这个jattach工具附加到 jp2launcher.exe,我可以检查我的代理 .jar 文件是否已加载,但我的 preMain 或 agentMain 都没有被调用。
当我使用 com.sun.tools.attach.VirtualMachine 附加到进程以附加到 jp2launcher.exe 并以这种方式加载代理时,会发生相同的行为。
我已成功使用上述方法在普通 Java 应用程序上启动代理。
任何想法为什么会发生这种情况以及是否可以在小程序上启动 Java 代理?
编辑:
这似乎是一个导致代理加载失败的安全问题。还没有通过使用 jattach 或 tools.attach 来加载代理,但是通过使用 JAVA_TOOL_OPTIONS 环境变量来做到这一点。
setx JAVA_TOOL_OPTIONS "-javaagent:agent.jar -Djava.security.policy=file.policy"
包含file.policy
:
grant {
permission java.security.AllPermission;
};