我正在尝试从远程服务器获取代码覆盖率数据,因此我添加了一个JVM参数:
-javaagent:/opt/jacocoagent.jar=output=tcpserver,port=6300,includes=“很长的名单”
但遗憾的是,包含列表太长,java命令已超出系统限制的最大长度。
有没有办法指定一个外部属性文件,所以我可以将长“包含列表”放在那里?
我已经阅读了jacoco文档,当在“离线工具”中运行时,如果它出现在类路径中,jacoco代理将从jacoco-agent.properties读取属性。但我不想使用这种模式。
答案 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