无法使用 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 文件夹中