记录一下在实际应用中遇到的一个超级坑的错误。

背景

在使用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>


和单元测试启动时控制台打印的参数一致。会不会把这里改了就行了?

当我把这个配置注释掉,重新编译启动时发现还是没有用。这下没招了。

解决方式

这下一点思路都没有了。于是我去看项目配置,在里面找到了一项:

Junit启动报错Could not create the Java Virtual Machine_配置项

在之前百度的时候有几篇文章说把​​argLine​​选项勾上,当时我默认就是选中的就没管,这下看到这个配置项,它会不会就是启动参数的配置呢?抱着试试的心态把它取消勾选,然后重新启动单元测试。过了

总结

这个问题确实有点超出了我的能力范围。好在运气比较好。还要继续努力啊



持续更新~