使用JavaFX和Eclipse IDE,我使用了Teamdev中的示例应用程序来加载示例文件(来自我的文件系统的notifications.html),但我一直收到页面未找到/ DNS错误。
有问题的文件,notifications.html,就在与调用它的源文件相同的包中,如下面的代码段所示:
Scene scene = new Scene(new BorderPane(view), 700, 500);
primaryStage.setScene(scene);
primaryStage.show();
browser.loadURL("notifications.html");
我认为我的问题是构成完全合格的路径,因为我使用的是Mac,所以我不清楚如何做到这一点。我试过了:
browser.loadURL("Users/myusername/Documents/workspace/jxBrowser/src/application/notifications.html");
然而它没有用。
答案 0 :(得分:0)
您需要使用loadHtml()
代替loadUrl()
假设loadHtml进入网络并尝试从您的电脑上的文件下载网址。将文件系统中的html读取到String并将其传递给loadHtml()
方法。
InputStream urlStream = getClass().getResourceAsStream("/notifications.html");
String html = null;
try (BufferedReader urlReader = new BufferedReader(new InputStreamReader (urlStream))) {
StringBuilder builder = new StringBuilder();
String row;
while ((row = urlReader.readLine()) != null) {
builder.append(row);
}
html = builder.toString();
} catch (IOException e) {
throw new RuntimeException(e);
}
browser.loadHTML(html);
对于此代码,您的html文件必须位于项目的resources
文件夹中