在 java 中显示网站

Display website in java

我有以下方法可以在默认浏览器中启动和加载一个 HTML 页面:

try {
            String url = "file:///C:/Users/Steve/Google%20Drive/Higher%20National%20Diploma%201/Semester%201/Assignments/Object%20Oriented%20Programming%20(Java)/Steve_Azzopardi_HND3/help/lotto.html";
            Desktop desktop = Desktop.getDesktop();
            desktop.browse(new URI(url));
        } catch (Exception ex) {
            System.out.println("Help file was not found");
        }

它工作正常,但我想让它更通用,这意味着如果我移动文件它不会破坏 link。我已将文件移动到项目目录,因此当我移动项目时,HTML 页面也会随之移动。我怎么能做这样的事?

编辑: 更新代码

try {
            String url = new File("help/lotto.html").getAbsolutePath();
            System.out.println(url);
            Desktop desktop = Desktop.getDesktop();
            desktop.browse(new URI(url));
        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("Help file was not found");
        }

Url输出:C:\Users\Steve\Google Drive\Higher国家文凭1\Semester1\Assignments\Object面向编程(Java)\Steve_Azzopardi_HND3\help\lotto.html

异常堆栈跟踪:java.net.URISyntaxException:索引 2 处不透明部分中的非法字符:C:\Users\Steve

将您的资源放在类路径中,以便您的路径地址成为您工作目录中文件的路径。我认为这应该完全解决它。

您可以将它放在类路径中(我认为最好的解决方案)。但您也可以在 java:

中执行此操作
String currDir = new File("").getAbsolutePath(); //project directory

将文件放在您要使用的目录中,例如项目目录本身。将 html 文件放在那里,如果你移动你的项目,你也会移动它。

但我想你想在目录中创建一个 html 文件夹:

project_path/help/lotto.html

然后你可以这样加载:

try {
       File f = new File("help/lotto.html");
       URI uri = f.toURI();
       Desktop desktop = Desktop.getDesktop();
       desktop.browse(uri);
} catch (Exception ex) {
       System.out.println("Help file was not found");
}