记录一下在实际应用中遇到的一个超级坑的错误。
背景
在使用Junit + mockito做单元测试的时候,运行单元测试报错:
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Unrecoginzed option: --add-opens.
在网上查了各种资料。但是没有特别符合的错误,大部分的回答是修改分配的jvm内存。但试过了之后还是没能够解决我的问题。
然后就回到了项目本身,报错提示不能识别的选项:--add-opens
,是否是本身项目配置了jvm启动参数的原因?于是我顺着这个思路往下进行。果然在项目的pom文件中找到了一处配置
<build>
<plugins>
<plugin>
<artifactId>xxx</artifactId>
<version>xxx</version>
<configuration>
<argLine>--add-opens xxx</argLine>
</configuration>
</plugin>
</plugins>
</build>
和单元测试启动时控制台打印的参数一致。会不会把这里改了就行了?
当我把这个配置注释掉,重新编译启动时发现还是没有用。这下没招了。
解决方式
这下一点思路都没有了。于是我去看项目配置,在里面找到了一项:
在之前百度的时候有几篇文章说把argLine
选项勾上,当时我默认就是选中的就没管,这下看到这个配置项,它会不会就是启动参数的配置呢?抱着试试的心态把它取消勾选,然后重新启动单元测试。过了
总结
这个问题确实有点超出了我的能力范围。好在运气比较好。还要继续努力啊
持续更新~