基于此:
默认情况下,原生镜像构建器不会将镜像构建期间类路径中的任何资源集成到它创建的镜像中。要使诸如 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
。
有谁知道如何在本机映像中管理资源文件?它们是否在单个二进制文件中合并?无论如何,我们是否能够通过文件协议定位资源文件?