【问题标题】:Accessing PDF file stored in a .jar访问存储在 .jar 中的 PDF 文件
【发布时间】:2013-10-02 11:20:54
【问题描述】:

我正在创建一个 GUI,我打算添加一个简单的 pdf 文件作为帮助文件。 我将它包含在资源包中并在此板上搜索我想出了以下代码:

private void GuideActionPerformed(java.awt.event.ActionEvent evt) {                                      
    if (Desktop.isDesktopSupported()) {
    try {
        File myFile = new File(("Help.pdf"));
        if (!myFile.exists()) {
            // In JAR
            InputStream inputStream = ClassLoader.getSystemClassLoader()
                                .getResourceAsStream("resources/manual.pdf");
            // Copy file
            OutputStream outputStream = new FileOutputStream(myFile);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = inputStream.read(buffer)) > 0) {
                outputStream.write(buffer, 0, length);
            }
            outputStream.close();
            inputStream.close();
        }
        Desktop.getDesktop().open(myFile);
    } catch (IOException ex) {
        // no application registered for PDFs
    }
}

问题是现在 pdf 阅读器无法访问该文件,因为它已被 java 应用程序使用。 有没有办法解决它?否则我将简单地将文件添加到 dist 并计算资源路径。

【问题讨论】:

  • 你试过了吗? InputStream input = getClass().getResourceAsStream("resources/manual.pdf");
  • 至少复制工作了吗?

标签: java file pdf file-io jar


【解决方案1】:

我尝试了您的代码,它运行良好,检查您是否在源代码中创建了文件夹resources,其中包含文件manual.pdf。此外,当您创建 jar 时,请检查这些文件是否已导出。

【讨论】:

    猜你喜欢
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    相关资源
    最近更新 更多