最近我切换到 Java 11 并开始调试我的应用程序并看到此消息:
OpenJDK 64 位服务器虚拟机警告:仅支持启动共享 加载器类,因为已附加引导类路径
仅找到this commit和ticket,但它并没有告诉我太多信息。
我需要担心吗?
您可以忽略此警告。这只是意味着对于引导类加载器未加载的类禁用类数据共享。
JVM使用引导类加载器加载一些JDK类 其余的与系统类加载器一起,但将它们全部包含在 它的默认存档。当 IntelliJ 执行您的项目时,它会告诉 JVM 通过附加到引导类加载器来加载一些代码 该类路径(消息的第二部分)。现在,这意味着 包含系统加载的类的存档部分 类加载器可能会失效,因此 JVM 会部分失效 停用共享(消息的第一部分)。您可以使用
-Xshare:off
完全禁用类数据共享,但这可能会增加启动时间。
-javaagent:/dd-java-agent.jar
) 等 java 命令行代理时,才会出现此问题。 当我在 JDK11 运行时环境(没有代理)中运行时,我没有收到警告。
https://stackoverflow.com/a/57957031/779173),您可以通过右键单击该行并选择“像这样折叠行”来从控制台视图中隐藏该行”
完成此操作后,您将看到:
"C:\Program Files\Java\jdk-17.0.2\bin\java.exe" ... <1 internal line>
tasks.test {
//kotlin
jvmArgs = listOf("-Xshare:off")
//groovy
jvmArgs "-Xshare:off'";
}