从类路径(Jar内部)的外部程序打开文件
我正在构建一个程序,我需要用Os的默认文本阅读器打开一个简单的.txt文件。我知道你可以这样做:从类路径(Jar内部)的外部程序打开文件
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文件已经在类路径中,我只需要弄清楚如何使用外部程序打开这个文件,但是从类路径中。这可能吗?如果是,如何?如果没有,是否有其他方法来实现呢?
..有没有其他的方法来实现呢?
将字节解压缩到临时文件。然后使用桌面API显示临时文件。
我该怎么做呢?代码的实现将会非常美妙:) –
*“代码执行会很棒:)”*使用我的建议来实现目标的实际努力的任何迹象都会很棒。 (SO不是代码生成服务。) –
Jeez。对不起,请求帮助。我只是11年级的学生,已经在这里工作了3天。我想我一直在付出比你想象的更多的努力。 –
你可以试试这个:
private void ajuda(){
try {
File arquivo = new File((IgJanelaPrincipal.class.getResource
("/ti/lpv/help/help.pdf").toURI()));
Desktop.getDesktop().open(arquivo);
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e){
e.printStackTrace();
}
}
很抱歉,如果我的标识符看起来很奇怪,这是从一所大学的项目代码块,再加上英语不是我的第一浪。 heheh
*“我只需要弄清楚如何使用外部程序打开此文件”*为什么'外部'?如果它只是一个文本文件,我会使用'JTextArea'来显示它。 –
@AndrewThompson我会这样做,但这意味着我需要完全创建一个新的JPanel和一个新窗口。这是一个帮助按钮,我宁愿让它在外部应用程序中打开。 –
*“但这意味着我需要完全创建一个新的JPanel和一个新窗口。”*哇!它只需要几行代码。少于将资源首先提取到文件所需的时间。但是使用非模态'JDialog'而不是'JWindow'或'JFrame' .. –