IntelliJ无法运行JUnit测试,但Maven可正常执行的问题求助
问题:IntelliJ运行JUnit测试报找不到主类'--enable-preview'
错误信息
Error: Could not find or load main class '--enable-preview'
Caused by: java.lang.ClassNotFoundException: '--enable-preview'
背景
此前可在IntelliJ、IntelliJ内置Maven及独立Maven环境中正常运行Java JUnit测试,近期仅在IntelliJ中运行时触发上述错误。其他运行方式(内置/独立Maven)无异常,Maven Surefire已配置--enable-preview参数,尝试在IntelliJ的JUnit标准模板中添加该参数仍报错,且不清楚项目依赖哪些预览特性。
已做排查
- 重装IntelliJ并复用原工作空间,问题未解决
- 重装后的IntelliJ可正常运行工作空间内其他项目的测试,排除IDE本身问题,锁定当前项目配置错误
- 在
.idea/workspace.xml中发现JUnit的VM-OPTIONS参数包含-ea --enable-preview,删除该文件后报错依旧 - 尝试移除
-ea参数,问题未改善 - 观察到IntelliJ运行测试的Java参数中出现重复的带单引号的
'--enable-preview'
解决方案
1. 修正Run/Debug配置的VM参数
打开Run > Edit Configurations:
- 找到对应的JUnit运行配置,切换到Configuration标签页,检查VM options输入框
- 删除重复的
--enable-preview参数,尤其是带单引号的'--enable-preview',仅保留一个不带引号的--enable-preview - 若为模板配置问题,进入Defaults > JUnit,修正模板中的VM参数,避免新配置继承错误项
2. 清除IDE缓存并重启
执行File > Invalidate Caches...,选择"Invalidate and Restart",重启后重新加载项目,清除缓存中的旧配置残留。
3. 让IntelliJ复用Maven配置
打开File > Settings > Build, Execution, Deployment > Build Tools > Maven > Runner:
- 勾选Delegate IDE build/run actions to Maven,让IntelliJ直接使用Maven Surefire的配置,避免IDE自行添加重复的预览参数
- 执行Maven > Reload Project刷新项目配置
4. 检查项目编译器预览特性配置
- 打开File > Project Structure > Modules,选中当前模块,切换到Sources标签页,确认Language level与项目Java版本匹配,且已勾选Enable preview features
- 进入Settings > Build, Execution, Deployment > Compiler > Java Compiler,检查对应模块的Additional command line parameters,删除重复的
--enable-preview参数
内容的提问来源于stack exchange,提问作者Owen McCarthy
相关产品推荐
相关产品推荐

