使用classpath中的外部程序打开文件(在Jar内)

时间:2016-01-20 14:03:42

标签: java swing desktop embedded-resource

我正在构建一个程序,我需要使用Os的默认文本阅读器打开一个简单的.txt文件。我知道你可以这样做:

Desktop desktop = Desktop.getDesktop();
desktop = open(new File("filename"));

但是这会打开系统文件路径中的文件,而不是类路径。由于我的程序必须分发和传递,因此帮助文件需要保留在.jar文件中。

我尝试用getClass().getResource("/resources/Help.txt")

实现它

像这样:

Desktop desktop = Desktop.getDesktop();
desktop = open(new File(getClass().getResource("/resources/Help.txt")));

然而,这不起作用。我甚至尝试过:

Desktop desktop = Desktop.getDesktop();
desktop = open(new File(getClass().getResourceAsStream("/resources/Help.txt")));

但这也不起作用。

Help.txt文件已经在类路径中,我只需要弄清楚如何使用外部程序从类路径中打开此文件。这可能吗?如果有,怎么样?如果没有,是否有另一种方法来实现这一点?

1 个答案:

答案 0 :(得分:1)

  

..有没有其他方法可以实现这个?

将字节解压缩到临时文件。然后使用Desktop API显示临时文件。