使用 javaagents 安装 4j?

问题描述

我们尝试将 -javaagent 与 install4j 捆绑应用程序一起使用。这不起作用,因为 -javaagent 的语句必须在参数列表的第一个。 但是 install4j 在第一个位置设置了自己的参数,我不知道如何将 -javaagent 参数设置为第一个位置。我激活 install4j 日志,看到其他参数总是排在第一位。

另一种可能性是使用 JDK 来启动 install4j 捆绑应用程序,但您只能使用 JRE 而不能使用 JDK。使用 JDK,您可以通过 Java 类 VirtualMachine 动态注册 JavaAgent。

解决方法

-javaagent 不必是第一个参数,但它必须是 VM 参数而不是主类的参数。由 install4j 创建的可执行文件的参数将传递给主类,除非它们以 -J 为前缀,在这种情况下,它们作为 VM 参数传递。

所以你通过了

-J-javaagent:...

在命令行中,它会正确传递。

参见 install4j manual,滚动到“在命令行上传递 VM 参数”。