java为什么GraalVM原生映像编译器不能在没有任何附加信息的情况下构建映像?
编译器使用JAR文件:
native-image [options] -jar jarfile [imagename] [options]
因此,可以在没有reflect.json
、resources.json
等的情况下扫描所有类和资源。为什么我们需要指定从类路径或通过Java反射获取的所有文件?在我看来,性能问题超出了范围。因为它会更好地支持任何库,即使它会比可能的慢
你可以在下面搜索框中键入要查询的问题!
编译器使用JAR文件:
native-image [options] -jar jarfile [imagename] [options]
因此,可以在没有reflect.json
、resources.json
等的情况下扫描所有类和资源。为什么我们需要指定从类路径或通过Java反射获取的所有文件?在我看来,性能问题超出了范围。因为它会更好地支持任何库,即使它会比可能的慢
# 1 楼答案
生成的可执行文件经过优化以运行特定的应用程序,而不是任何应用程序
主要的限制不是包含什么,而是不能在运行时加载新类。 任何不依赖于在运行时加载动态生成的类的库/应用程序都可以通过
native-image
和适当的配置得到完美的支持确实可以包含整个java。基地,你所有的依赖。。。最终的可执行文件将具有更多的“功能”,但代价是(更大)的大小和编译时间