基于this:
默认情况下,本机图像生成器不会集成任何 在将图像构建到图像的过程中,类路径上的资源 它创建的图像。要进行诸如Class.getResource()之类的调用, Class.getResourceAsStream()(或相应的ClassLoader方法) 返回特定资源(而不是null),应返回的资源 必须在图像运行时明确指定可访问性。
这说明了如何通过getResource()
访问资源文件。我有一个用例,需要在iOS的WebView中加载资源文件,所以基本上我尝试这样做:
public void start(Stage stage) {
WebView webView = new WebView();
URL url = Thread.currentThread().getContextClassLoader().getResource("demo/index.html");
System.out.println("url = " + url);
System.out.println("url.toExternalForm = " + url.toExternalForm());
System.out.println("url.getPath()= " + url.getPath());
webView.getEngine().load("file://" + url.getPath());
VBox root = new VBox(webView);
root.setAlignment(Pos.CENTER);
Scene scene = new Scene(root, 640, 480);
stage.setScene(scene);
stage.show();
}
这些url.toString()
,url.toExternalForm
,url.getPath()
中的任何一个都不返回本机映像中的有效可加载路径,它们的值为resource:demo/index.html
或file://demo/index.html
。
有人知道如何在本机映像中管理资源文件吗?它们是否合并在单个二进制文件中?能否通过文件协议找到资源文件?
答案 0 :(得分:1)
您可以执行以下操作:
native-image -H:IncludeResources= <Java regexp that matches resources to be included in the image>
要获取完整图片,请查看此链接 https://docs.oracle.com/en/graalvm/enterprise/20/docs/reference-manual/native-image/Resources/