0

在我的程序中的某个时刻,我正在使用 iText 创建一个 pdf 文件。此文件已创建,因此人们可以看到它也添加到我的数据库中。它在 Eclipse 中工作得很好,但是当我制作一个可运行的 jar 时它不起作用。该文件未创建且未添加到数据库中。我不知道为什么它不能在罐子里工作。

        PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream(documentName.getName() + ".pdf"));

///////

        File file = new File(document.getName() + ".pdf");

有什么建议吗?谢谢大家

4

3 回答 3

1

尝试使用FatJar创建 .jar这会将您正在使用的库添加到创建的 .jar

于 2012-06-04T08:07:25.393 回答
0

您正在使用相对文件路径名 (?)。因此,如果从 Eclipse 或 Jar 运行,您的文件可能会保存在不同的位置(文件夹)。

您的文件总是保存在 System.getProperty("user.dir") 中。

于 2012-06-04T08:10:16.797 回答
0

试着这样做:

PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream("C:\\some_file.pdf"));

并检查文件是否作为some_file存在于c驱动器上。我相信会的。另外,我不知道文档是什么类型的对象,但它可能包含返回绝对路径的方法。

编辑:
如果您在一个程序中再次使用该文件,我会这样做:

File file = new File(document.getName() + ".pdf");
PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream(file));

甚至

String path = "some/safe/path/maybe/provided/by/user"; // in settings or sth
File file = new File(path+document.getName() + ".pdf");
PdfWriter writer = PdfWriter.getInstance(document,
                new FileOutputStream(file));
于 2012-06-04T08:16:53.747 回答