我有一个用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 +键快捷键打开。非常感谢您的帮助。感谢。
答案 0 :(得分:1)
当你的jar中有一个文件时,你无法像现在这样访问它。 您需要将其视为流,这是唯一的方式。
答案 1 :(得分:0)
假设您的项目是foo
。然后help/operation.html
将参考
的 .. \ ABC \帮助\ operation.html 强>
但部署的jar文件不包含它。
您已在源代码中包含此operation.html
文件(您编写代码的位置)
然后eclipse(或任何IDE)将在部署时将其添加到您的jar文件中。
现在您可以按如下方式使用您的文件。
假设您的文件存在,如图所示。
现在您可以从任何类中引用您的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
包