使用无效的程序包在导出的JAR中包含文件

时间:2014-08-14 07:36:28

标签: java jar

我在导出应用程序时尝试将文件包含到我的(runnable)jar中。 它是一个ttf文件,对我的pdf生成器很重要。我将文件放在src\pdf_content\下,但在导出并运行程序后,它告诉我找不到该文件:

java.io.FileNotFoundException: src\pdf_content\bgcs.ttf (The system cannot find the path specified)
       at java.io.FileInputStream.open(Native Method)
       at java.io.FileInputStream.<init>(FileInputStream.java:131)
       at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.loadTTF(PDTrueTypeFont.ja
       at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.loadTTF(PDTrueTypeFont.ja
       at com.hp.deu.vw.fis.db.schemavergleich.PDFDocumenter.createPDFDocumentati
       at com.hp.deu.vw.fis.db.schemavergleich.MainClass.createPDFandOutput(MainC
       at com.hp.deu.vw.fis.db.schemavergleich.MainClass.start(MainClass.java:242
       at com.hp.deu.vw.fis.db.schemavergleich.MainClass.main(MainClass.java:191)

在Eclipse中运行程序 可以正常工作。

我使用

访问该文件
// APACHE PDFBOX METHOD
bcgsFont = PDTrueTypeFont.loadTTF(doc, "src/pdf_content/bgcs.ttf");

1 个答案:

答案 0 :(得分:0)

您应该转到loadTTF方法InputStream而不是文件路径。可以使用InputStream方法获取.class.getResourceAsStream()。像这样的东西:

bcgsFont = PDTrueTypeFont.loadTTF(doc, PdfContent.class.getResourceAsStream("bgcs.ttf"));

使用哪个类而不是PdfContent - 我不知道您项目的结构。例如,位于pdf_content包中的任何类。