如何外化jacoco javaagent的属性

时间:2016-11-28 08:43:46

标签: java jacoco

我正在尝试从远程服务器获取代码覆盖率数据,因此我添加了一个JVM参数:

-javaagent:/opt/jacocoagent.jar=output=tcpserver,port=6300,includes=“很长的名单”

但遗憾的是,包含列表太长,java命令已超出系统限制的最大长度。

有没有办法指定一个外部属性文件,所以我可以将长“包含列表”放在那里?

我已经阅读了jacoco文档,当在“离线工具”中运行时,如果它出现在类路径中,jacoco代理将从jacoco-agent.properties读取属性。但我不想使用这种模式。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。 当oracle JVM启动时,它会选择一个环境变量 JAVA_TOOL_OPTIONS

  

JNI_CreateJavaVM函数(在JNI调用API中)预先添加   环境变量的值对其中提供的选项   JavaVMInitArgs参数。

所以在我的情况下,我定义了: JAVA_TOOL_OPTIONS = -javaagent:/path/to/jacocoagent.jar=output=tcpserver,address = *,port = 6300,包括=" 一个很长的列表"

有关详情,请参阅: https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/envvars002.html