将 Ecllipse 存储与 micrornaut 应用程序一起使用时遇到以下问题:
Could not obtain access to "jdk.internal.misc.Unsafe", please start the VM with --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
根据 microstream 常见问题解答 - https://docs.microstream.one/manual/storage/faq/java-features.html这是一个已知问题
MicroStream 可以处理记录吗?
是的,但由于 Java 15 中引入的记录反射限制,必须将导出添加到 VM 参数中:
--add-exports java.base/jdk.internal.misc=ALL-UNNAMED
这个问题与java记录有关,我在根目录中有如下记录
public record Country(UUID id,
String name,
String flagUrl,
Optional<Integer> matchPlayed,
Optional<Integer> win,
Optional<Integer> draw,
Optional<Integer> lost,
Optional<Integer> points) {
}
我正在使用 Kotlin 版本的 build.gradle,根据建议我需要添加 JVM 变量,但是我做了如下
application {
mainClass = "fete.bird.EuroApi"
applicationDefaultJvmArgs = listOf(
"--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"
)
}
仍然面临同样的问题,但在 JUnit 测试期间我设置了以下参数,一切都按预期工作
tasks.test {
jvmArgs("--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED")
}
更新
添加此功能可以很好地使用
./gradlew run
tasks.withType<JavaExec> {
jvmArgs("--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED")
}
但是不使用IntelllJ,如何在intellj中设置参数?