无法使用 JxBrowser 加载 html 文件(从本地文件系统)
Unable to load an html file (from local file system) using JxBrowser
使用 JavaFX 和 Eclipse IDE,我使用了 Teamdev 的示例应用程序来加载示例文件(notifications.html 来自我的文件系统),但我一直无法获得页面 found/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");
但是没有用。
您需要使用 loadHtml()
而不是 loadUrl()
假设 loadHtml 进入网络并且您尝试从您电脑上的文件下载 url。从文件系统读取 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
文件夹中
使用 JavaFX 和 Eclipse IDE,我使用了 Teamdev 的示例应用程序来加载示例文件(notifications.html 来自我的文件系统),但我一直无法获得页面 found/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");
但是没有用。
您需要使用 loadHtml()
而不是 loadUrl()
假设 loadHtml 进入网络并且您尝试从您电脑上的文件下载 url。从文件系统读取 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
文件夹中