我需要在运行jar1时在我的JVM args中添加<svg>
参数,但是引用jar1中包含的jar2。我试过了:
-javaagent
没有成功。如何在运行时确定正在运行的系统中JAR的位置?
(这是作为使用Pushy APN的HTTP / 2使用的Java代理运行-javaagent:BOOT-INF/lib/jetty-alpn-agent-2.0.0.jar"
)
答案 0 :(得分:0)
如果你知道这个类在类路径上,你通常可以这样做:
URL jar = MainClass.class.getProtectionDomain().getCodeSource().getLocation();
Javaagent总是在类路径上加载,这就是为什么你应该能够引用常规应用程序的主类。
答案 1 :(得分:0)
@indusBull
对我有用的解决方案是在我的libDirectory
文件中定义一个名为gradle.properties
的属性,该属性是运行系统中JAR的位置,然后从该变量中引用该变量。我的Dockerfile
:
gradle.properties
libDirectory = /opt/meanwhileinhell/app/lib
Dockerfile
ENTRYPOINT ["java",\
...
...
"-javaagent:${libDirectory}/jetty-alpn-agent.jar",\
"-jar", "/app.jar"]