将程序打包为jar后,文件输出发生变化

时间:2012-06-29 20:12:07

标签: java jar

我有一个应用程序将一些数据写入纯文本索引文件。它在Netbeans中工作正常,但是当打包为jar时,索引文件被创建但最终为空白。以下是相关代码:

System.out.println("Writing Index File");

PrintWriter indexOut = new PrintWriter(new File("index.txt"));

for(int i = 0; i < index.size(); i++)
{
    indexOut.println(index.get(i));
}

indexOut.flush();
indexOut.close();

System.out.println("Index complete.");

当我将它捆绑为jar时,为什么应用程序行为会发生变化?如何修复它?

3 个答案:

答案 0 :(得分:1)

您认为索引集合有什么用途吗? 您可能想要更改第一个 System.out.println(“编写索引文件”+ index.size());

您可以尝试调试它。

除非程序的输入发生变化,否则应该没有理由更改应用行为。

答案 1 :(得分:1)

我怀疑您正在从一个应该与您当前目录相关的文件中读取程序中的某些数据。所以你应该检查你是否依赖于任何相对路径。如果是,则将它们转换为绝对路径作为第一步。

答案 2 :(得分:0)

当您从netbeans运行时,默认文件路径(如果您只是编写File(“indexOut.txt”),文件将落在哪里)是netbeans项目文件夹。如果双击jar文件,则默认路径是包含jar的目录。