【问题标题】:.Jar file runs well from NeBeans but not from /dist lib.Jar 文件在 NeBeans 中运行良好,但在 /dist lib 中运行良好
【发布时间】:2015-03-23 15:12:14
【问题描述】:

我对 Java 和 Netbeans 有点陌生,但我听说你们是一个很棒且乐于助人的社区,所以您能否给我一个建议,如果我点击源代码(编译后)如何正常工作NetBeans 中的绿色三角形,但如果我打开 DIST/jar 文件的包含(在 NetBeans 之外)它不是吗?

更准确地说,应用程序运行良好,但当我单击按钮时某个特定功能没有运行(使用 iText 插件生成 PDF)。

这是无效方法的一部分代码(正如我提到的按钮有效,但前提是我从 NetBeans 启动我的应用程序

如果我删除图像引用,应用程序从外部运行良好(总指挥官,/dist/myapp.jar,Enter),但我真的想使用 PDF 文件中的图像。路径很好(因为它是从 netbeans 工作的)

所以我 100% 确定 .jar 找不到徽标(如果没有它也可以工作),但是如果它是从 NetBeans 启动的,它怎么能找到呢?我可以在路径上重写什么? (我尝试了“/”、“@”、“/src”,而 .png 可以在 /src 中找到,就像其他图片一样(完美加载))

 public void pdfGenerate(String title, String text) {

  ............................
        document.open();
        Image image1 = Image.getInstance("src/logo.png");
        image1.scaleToFit(200, 86);
        image1.setAbsolutePosition(200f, 750f);
        document.add(image1);

        document.add(new Paragraph("\n\n\n\n\n" + text, FontFactory.getFont("font", BaseFont.IDENTITY_H, BaseFont.EMBEDDED)));


    } catch (Exception e) {
        e.printStackTrace();
    }
    document.close();
  ...............................
  }

【问题讨论】:

    标签: image pdf netbeans javafx window


    【解决方案1】:

    当您将应用程序打包为 jar 文件时,资源也应该打包在那里。 method you are calling 将字符串解释为文件名;创建和部署 jar 文件时,该文件不会出现在系统上。

    您需要为资源指定一个 URL。您可以使用getClass().getResource(...) 执行此操作。如果在此处指定以/ 开头的资源路径,它将相对于类路径进行解释;否则它是相对于当前类的。

    请注意,overloaded form of Image.getInstance(...) 带有一个 URL。

    看来你需要

    Image image1 = Image.getInstance(getClass().getResource("/logo.png"));
    

    你也可以通过命令行检查jar文件的内容

    jar -tf yourfile.jar
    

    确保图像文件在其中。

    【讨论】:

      【解决方案2】:

      您是否尝试指定从 jar 文件到图像的相对路径? 您的 src 文件夹已打包到 jar 中,但您正在尝试获取外部文件(图像)。

      检查 src-folder 是否仍然与 jar 位于同一文件夹中。 如果它不存在,请尝试手动创建它并将图像放在那里。

      【讨论】:

      • 我明白了。在这种情况下,您能告诉我如何修改我的代码以达到打包到 .jar 文件中的“内部”图片吗?因为整个包会被发送到另一台电脑上,并且需要能够单独运行。
      • 是的,他做到了,但也感谢您指出问题! ;)
      猜你喜欢
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多