我想在WebView
JavaFX应用程序的中加载HTMLfile 。该文件位于我的项目目录中的webviewsample
包内。
我使用了以下代码:
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("WebView test");
WebView browser = new WebView();
WebEngine engine = browser.getEngine();
String url = WebViewSample.class.getResource("/map.html").toExternalForm();
engine.load(url);
StackPane sp = new StackPane();
sp.getChildren().add(browser);
Scene root = new Scene(sp);
primaryStage.setScene(root);
primaryStage.show();
}
但是它抛出一个异常,说:
应用程序启动方法java.lang.reflect.InvocationTargetException中的异常
您会收到此异常,因为您的url
变量在此行为空:
String url = WebViewSample.class.getResource("/map.html").toExternalForm();
您可以通过以下几种选择getResource()
:
如果资源与该类位于同一目录,则可以使用
String url = WebViewSample.class.getResource("map.html").toExternalForm();
使用开始斜杠(“ /”)表示到项目根目录的相对路径。:
在特定情况下,如果资源存储在webviewsample
包中,则可以通过以下方式获取资源:
String url = WebViewSample.class.getResource("/webviewsample/map.html").toExternalForm();
使用开始的点斜杠(“ ./”)表示相对于类路径的相对路径:
假设您的rclass存储在package中webviewsample
,而您的resource(map.html
)存储在一个子目录中res
。您可以使用以下命令来获取URL:
String url = WebViewSample.class.getResource("./res/map.html").toExternalForm();
基于此,如果您的资源与您的课程位于同一目录中,则:
String url = WebViewSample.class.getResource("map.html").toExternalForm();
和
String url = WebViewSample.class.getResource("./map.html").toExternalForm();
是等效的。
要进一步阅读,可以查看的文档getResource()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句