java - 尝试将 rtf 文件从 Jar 读取到 JEditorPane;在 Netbeans 中工作,而不是在 Jar 中工作

标签 java swing jar jeditorpane application-resource

很抱歉,如果这是显而易见的,但我已经寻找了好几天,但似乎找不到答案。

情况是这样的。我正在尝试从 jar 文件中的 rtf 文件读取内容,然后将其显示在 JEditorPane 中。这在 Netbeans 环境中有效,但在执行 dist 文件夹中的 jar 文件时无效。以前曾问过这个问题的一个版本,但对于我的应用程序,我认为以前的答案不适用。 (原因是 JEditorPane.read 需要 FileInputStream,而我见过的所有其他问题的解决方案都涉及非文件 InputStream。以下是有问题的代码:

descPane = new JEditorPane("application/rtf", "");
   try {
       File test = new File(this.getClass().getResource("files/general.rtf").toURI());
       descPane.read(new FileInputStream(test), null);
    } catch (Exception ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }

非常感谢任何帮助!谢谢!

最佳答案

使用从 getResource() 获取的 URL 加载文档。如果它位于 Jar 中,则无法将其作为文件访问。

类似这样的事情:

URL urlToRtf = this.getClass().getResource("files/general.rtf");
descPane.setPage(urlToRtf);

关于java - 尝试将 rtf 文件从 Jar 读取到 JEditorPane;在 Netbeans 中工作,而不是在 Jar 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766842/

相关文章:

java - 我应该在 Swing 中使用 setAction 还是 addActionListener?

java - 如何使用 BoxLayout 让组件与 JPanel 中的顶部对齐?

python - Hadoop 2.7.3 Streaming Jar 无效

java - 如何通知另一个线程

java - 如何保护我的 Java AES 加密 key

java - "Step"或 "Job"Spring-Batch bean 的范围?

java - 通过敲击键盘上的 "enter"关闭 JDialog

java - 可执行的 shell 脚本在嵌入然后从 java 存档中提取后仍然可以执行吗?

java - java如何定位JAR文件?

java - 将文件作为链接而不是邮件中的附件发送