IDEA中通过测试方法运行按钮执行测试遇权限问题,如何添加JVM参数?
解决IDEA运行测试时的InaccessibleObjectException错误
这个错误是Java 9+模块系统的限制导致的——测试代码通过反射访问了java.base模块中未对外公开的API,需要添加--add-opens参数开放权限。以下是几种在IDEA中配置该参数的方法:
方法1:为单个测试方法配置运行参数
- 点击测试方法旁的绿色运行按钮,选择「Modify Run Configuration...」
- 在弹出的配置窗口中,找到「VM options」输入框
- 输入参数:
--add-opens=java.base/java.lang=ALL-UNNAMED - 点击「Apply」后重新运行测试即可
方法2:全局配置JUnit默认参数(所有新测试自动生效)
- 打开IDEA顶部菜单栏的「Run」→「Edit Configurations...」
- 在左侧列表中选中「JUnit」,点击上方的「Edit configuration templates」(模板样式的按钮)
- 在模板配置的「VM options」栏中添加
--add-opens=java.base/java.lang=ALL-UNNAMED - 保存配置后,新创建的测试运行配置会自动继承该参数
方法3:通过Maven配置(命令行+IDEA通用)
如果是Maven项目,可以在pom.xml中配置maven-surefire-plugin,这样无论用IDEA运行还是命令行执行mvn test都会生效:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <!-- 建议使用最新稳定版本 --> <configuration> <argLine>--add-opens=java.base/java.lang=ALL-UNNAMED</argLine> </configuration> </plugin> </plugins> </build>
内容的提问来源于stack exchange,提问作者user971741
相关产品推荐
相关产品推荐

