如何修复JMeterPluginsCMD运行时报ExceptionInInitializerError错误
问题根因
该错误由Java版本与JMeter组件不兼容导致:你当前使用的是Java 9及以上版本,而你安装的JMeter 5.3内置的XStream序列化工具版本较低,没有适配Java 9引入的模块化访问限制,无法通过反射访问JDK内置的java.util.TreeMap私有属性,因此触发InaccessibleObjectException报错。
解决方案
有两种可行处理方式,优先选第一种:
切换Java 8运行工具
JMeter 5.x系列官方推荐运行环境为Java 8,切换到Java 8后不需要修改任何配置,直接运行原有命令即可正常生成图表。保留现有Java版本,修改启动脚本添加JVM参数
如果不想更换Java版本,可以编辑JMETER_HOME/bin/JMeterPluginsCMD.bat文件,找到脚本中调用Java启动程序的行,在java命令后追加以下启动参数,放开对应模块的反射访问限制:
--add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.math=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED
修改完成后保存脚本,重新运行原生成命令即可。
可选优化
如果执行后依然出现JMeterUtils.appProperties is null的警告,可以在你的原有命令末尾追加JMeter home路径参数:--jmeter-home "E:\Outcode\ProtocolNow\apache-jmeter-5.3"
内容的提问来源于stack exchange,提问作者Rasik
相关产品推荐
相关产品推荐

