Junit启动报错Could not create the Java Virtual Machine
记录一下在实际应用中遇到的一个超级坑的错误。
背景
在使用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
选项勾上,当时我默认就是选中的就没管,这下看到这个配置项,它会不会就是启动参数的配置呢?抱着试试的心态把它取消勾选,然后重新启动单元测试。过了
总结
这个问题确实有点超出了我的能力范围。好在运气比较好。还要继续努力啊😄
持续更新~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix