MicroStream+Micronaut在IntelliJ运行时遇Unsafe访问权限问题
解决Micronaut+MicroStream中JDK Unsafe访问限制问题(IntelliJ环境)
问题概述
在Micronaut应用中使用MicroStream时,受Java 15引入的Record反射限制影响,出现以下错误:
Could not obtain access to "jdk.internal.misc.Unsafe", please start the VM with --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
已通过Gradle配置tasks.withType<JavaExec>解决了./gradlew run的运行问题,但IntelliJ直接运行应用时仍报错,需单独配置IntelliJ的VM参数。
IntelliJ中设置VM参数的两种方式
方式一:修改应用运行配置
- 点击IntelliJ右上角运行按钮旁的下拉框,选择Edit Configurations...
- 在左侧列表中找到你的Micronaut应用主类配置(如
EuroApi) - 在配置页面的VM options输入框中,添加参数:
--add-exports java.base/jdk.internal.misc=ALL-UNNAMED - 点击Apply保存配置,重新运行应用即可。
方式二:让IntelliJ复用Gradle的JVM参数
如果习惯通过IntelliJ的Gradle面板运行run任务,可按以下设置让IntelliJ继承Gradle配置:
- 打开IntelliJ的Settings/Preferences(Windows/Linux:Ctrl+Alt+S;Mac:Cmd+,)
- 导航到Build, Execution, Deployment > Build Tools > Gradle
- 将Run using和Run tests using选项均设置为Gradle
- 保存设置后,重新运行Gradle的
run任务,即可自动应用build.gradle中配置的JVM参数。
内容的提问来源于stack exchange,提问作者San Jaisy
相关产品推荐
相关产品推荐

