HTML文件无法在可执行jar中打开

时间:2014-12-02 23:40:26

标签: java eclipse jar executable-jar

我有一个用Eclipse编写的程序,它运行正常 - 当我通过Eclipse运行程序时,HTML文件会打开。但是当我创建程序的jar文件时,其他一切运行正常,除非这个HTML文件不会在浏览器中打开(或任何地方):

    operation.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                File htmlFile = new File("help/operation.html");
                Desktop.getDesktop().browse(htmlFile.toURI());
            } catch (MalformedURLException MURLe) {
                MURLe.printStackTrace();
            } catch (IOException ioE) {
                ioE.printStackTrace();
            }
        }
    });

程序的其余部分运行正常,我的图像和声音工作正常并打开,但此HTML文件无法在菜单中打开或使用Ctrl +键快捷键打开。非常感谢您的帮助。感谢。

2 个答案:

答案 0 :(得分:1)

当你的jar中有一个文件时,你无法像现在这样访问它。 您需要将其视为流,这是唯一的方式。

答案 1 :(得分:0)

假设您的项目是foo。然后help/operation.html将参考
.. \ ABC \帮助\ operation.html

但部署的jar文件不包含它。
您已在源代码中包含此operation.html文件(您编写代码的位置) 然后eclipse(或任何IDE)将在部署时将其添加到您的jar文件中。

现在您可以按如下方式使用您的文件。 假设您的文件存在,如图所示。 enter image description here
现在您可以从任何类中引用您的html文件。在这个例子中引用它 Accesser上课。

File resFile = new File(Accesser.class.getResource("operation.html").toURI());

如果要在浏览器中打开文件,则必须将此文件复制到 用户的系统。

File htmlFile = new File("operation.html");
if(!htmlFile.exists) {
    Files.copy(resFile.toPath(), htmlFile.toPath());
}
Desktop.getDesktop().browse(htmlFile.toURI());

文件存在于java.nio.file