为什么 GraalVM 本机映像编译器无法在没有任何附加信息的情况下构建映像?



编译器使用一个JAR文件:

native-image [options] -jar jarfile [imagename] [options]

因此可以在没有reflect.jsonresources.json等的情况下扫描所有类和资源。为什么我们需要指定从类路径或通过Java反射获得的所有文件?在我看来,性能问题超出了范围。因为它将更好地支持任何库,即使它会比可能的更慢。

生成的可执行文件经过优化,可以运行特定的应用程序,而不是任何应用程序。

主要的限制不是包含或不包含什么,而是不能在运行时加载新类。任何不依赖于在运行时加载动态生成的类的库/应用程序都可以通过native-image通过适当的配置得到完美的支持。

确实可以包含整个java.base、所有依赖项。。。最终可执行文件将具有更多的";特征";以牺牲(更大的(大小和编译时间为代价。

最新更新