主Jar中的引用Jar将作为javaagent传递给JVM

2019年8月8日 8点热度 0条评论

运行jar1时,我需要在JVM args中添加-javaagent参数,但是引用jar1中包含的jar2。我努力了:

-javaagent:BOOT-INF/lib/jetty-alpn-agent-2.0.0.jar"

没有成功。如何在运行时确定运行系统中JAR的位置?

(这是将
jetty-alpn-agent-2.0.0.jar作为Java代理运行,以便将Push / 2 APN与HTTP / 2一起使用)

解决方案如下:

如果知道该类在类路径上,则通常可以执行以下操作:

URL jar = MainClass.class.getProtectionDomain().getCodeSource().getLocation();

Javaagent始终加载在类路径上,这就是为什么您应该能够引用常规应用程序的主类的原因。