我正在构建一个程序,我需要用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文件已经在类路径中,我只需要弄清楚如何使用外部程序打开这个文件,但是从类路径中。这可能吗?如果是,如何?如果没有,是否有其他方法来实现呢?
*“我只需要弄清楚如何使用外部程序打开此文件”*为什么'外部'?如果它只是一个文本文件,我会使用'JTextArea'来显示它。 –
@AndrewThompson我会这样做,但这意味着我需要完全创建一个新的JPanel和一个新窗口。这是一个帮助按钮,我宁愿让它在外部应用程序中打开。 –
*“但这意味着我需要完全创建一个新的JPanel和一个新窗口。”*哇!它只需要几行代码。少于将资源首先提取到文件所需的时间。但是使用非模态'JDialog'而不是'JWindow'或'JFrame' .. –