JavaFX资源处理:在WebView中加载HTML文件
我想在JavaFX应用程序的JavaFX资源处理:在WebView中加载HTML文件,java,javafx,webview,resources,Java,Javafx,Webview,Resources,我想在JavaFX应用程序的WebView中加载一个HTMLfile。该文件位于我的项目目录中,在webviewsample包中 我使用了以下代码: public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("WebView test"); WebView browser = new WebView(); WebEngine engine =
WebView
中加载一个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存储在packagewebviewsample
中,您的资源(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();