Java iText不在netbeans之外工作

Java iText不在netbeans之外工作,java,itext,Java,Itext,我在JavaUI应用程序的Netbeans编辑器中编写了以下代码,用于使用itext生成PDF String result=""; Document doc=new Document(); PdfWriter writer=null; DecimalFormat df=new DecimalFormat("0.00"); try { writer=PdfWriter.getInstance(doc, new FileOutputSt

我在JavaUI应用程序的Netbeans编辑器中编写了以下代码,用于使用itext生成PDF

    String result="";
    Document doc=new Document();
    PdfWriter writer=null;
    DecimalFormat df=new DecimalFormat("0.00");
    try
    {
        writer=PdfWriter.getInstance(doc, new FileOutputStream(new File("second.pdf")));
        doc.addAuthor("abcdefg");
        doc.addCreationDate();
        doc.addProducer();
        doc.addCreator("abcdefg");
        doc.addTitle("Invoice for company");
        doc.setPageSize(PageSize.A4);

        doc.open();
        doc.newPage();

        doc.add(new Paragraph("new paragraph"));

        PdfPTable table = new PdfPTable(1);
        PdfPCell cellValue = new PdfPCell(new Phrase("Header 1"));
        cellValue.setColspan(1);

       table.addCell(cellValue);
        doc.add(table);
        result= "Successfully created preview.Please check the document";
    }
    catch(Exception e)
    {
       result= "Doucment already opened. Please close it";
        System.out.println("exception came");
    }
    finally
    {
        if(doc!=null)
        {
            doc.close();
        }
        if(writer!=null)
        {
            writer.close();
        }
        return result;
    }
当我点击NetBeans中的RUN按钮时,这段代码正在生成pdf,但是如果双击项目文件夹中的“.JAR”文件,它将无法将表添加到pdf中,并且生成异常IOException文档没有页面

这里发生了两件有趣的事情:

1) 当我从代码中删除表添加部分时,它在这两种情况下都工作得很好。这证明了netbeans中的“构建”是正确的


2) 当我添加表格部分时。异常已生成,但未执行catch块和finally块。我这样说是因为若catch和finally块正确执行,文档肯定会正确关闭。但在这里,当我的应用程序生成该文件时,我双击该文件时,它显示该文件已在使用中,并且该文件已损坏。这证明catch和finally块没有执行。

可以发布完整的代码吗。当您创建文档时。您是否正确地打开和关闭文档?jar是否包含您最近的代码更改?你必须重建它吗?你好,andy,构建已经正确完成,我确信这一点,因为当我从我的代码中删除表格部分时,pdf文件正在生成带有段落“new Parague”的表格部分,但是当我添加表格部分时,代码正在Netbeans中运行,而不是直接执行jar文件。你解决了这个问题吗?你能发布完整的代码吗。当您创建文档时。您是否正确地打开和关闭文档?jar是否包含您最近的代码更改?你必须重建它吗?你好,andy,构建已经正确完成,我确信这一点,因为当我从我的代码中删除表部分时,pdf文件正在生成一个段落“new Parague”,但当我添加表部分时,代码正在Netbeans中运行,而不是直接执行jar文件。你解决了这个问题吗?