如何使用JaCoCo代理测量javawebstart(JNLP)应用程序的代码覆盖率?

如何使用JaCoCo代理测量javawebstart(JNLP)应用程序的代码覆盖率?,java,java-web-start,jnlp,jacoco,javaagents,Java,Java Web Start,Jnlp,Jacoco,Javaagents,有没有办法将JaCoCo代理连接到javaws-Web-Start(JNLP)应用程序 我通常通过调用javaws-app.jnlp来运行应用程序。下面是一个示例jnlp文件: <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="http://localhost:8000/" href="test.jnlp"> <information> <titl

有没有办法将JaCoCo代理连接到javaws-Web-Start(JNLP)应用程序

我通常通过调用
javaws-app.jnlp
来运行应用程序。下面是一个示例jnlp文件:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8000/" href="test.jnlp">
    <information>
        <title>Testing</title>
        <vendor>vendor</vendor>
        <homepage href="http://localhost:8080/" />
        <description>Testing Testing</description>
        <security>
            <all-permissions/>
        </security>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.6+" />
        <jar href="test.jar" />
    </resources>
    <application-desc main-class="Main" />
</jnlp>

有没有办法将JaCoCo代理附加到这样的JNLP JVM上?

我找到了办法:添加

grant {
    permission java.security.AllPermission;
};
/etc/icedtea web/javaws.policy
(路径在Windows上不同:
C:\Program Files\Java\\lib\security\javaws.policy
)在运行

  • javaws-J-javaagent:/path/to/jacoagent.jar app.jnlp
    (似乎只在Linux上工作)
  • 或者
    JAVA\u工具\u选项=“-javaagent:/path/to/jacoagent.jar”javaws-app.jnlp
并创建jacoco.exec文件

还请注意,显然,您的申请需要签名才能生效:



根据,
java-vm-args
不支持java代理,因为只支持有限数量的被认为是安全的vm-args。

如果您投了反对票,我希望您能给出一个解释
grant {
    permission java.security.AllPermission;
};