我正在尝试在 GraalVM Community Edition 1.0 RC4 上运行 Java 程序,该代码适用于最新的 JDK 8 版本。代码以与 GraalVM 相同的方式运行,但相同的错误消息每秒在控制台中打印 100 次(我认为每次需要/使用垃圾收集器):
org.graalvm.compiler.debug.GraalError: <unknown> garbage collector is not supported by Graal
at org.graalvm.compiler.hotspot.HotSpotGraalRuntime.<init>(HotSpotGraalRuntime.java:205)
at org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.createCompiler(HotSpotGraalCompilerFactory.java:145)
at org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.createCompiler(HotSpotGraalCompilerFactory.java:123)
at org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.createCompiler(HotSpotGraalCompilerFactory.java:47)
at jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getCompiler(HotSpotJVMCIRuntime.java:360)
at jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.compileMethod(HotSpotJVMCIRuntime.java:448)
该程序似乎因打印和/或可能缺少垃圾收集而减慢了速度,并且永远不会结束。
我用一个简单的 HelloWorld 进行了测试,并且不断出现相同的错误消息。程序结束,因为它足够短,并且可以编译。
我使用 GraalVM 社区版按照官方网站上的教程进行操作。我在Graal Github上发现了类似的错误,但我不知道如何设置垃圾收集器,使用的命令行似乎是 Java 10 独有的。
编辑和解决方案:我在 Ubuntu 上使用 Oracle VM VirtualBox,似乎 VM 设置太低。如果您遇到同样的问题,请增加您的 RAM 和 CPU,它应该可以解决它。