1

我有一个将一些数据写入纯文本索引文件的应用程序。它在 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 时,为什么应用程序的行为会发生变化,我该如何解决?

4

3 回答 3

1

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

于 2012-06-29T20:20:39.410 回答
1

你认为索引集合有什么东西吗?您可能希望将第一个喜欢更改为 System.out.println("Writing Index File " + index.size());

您可以尝试进行相同的调试。

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

于 2012-06-29T20:18:26.593 回答
0

当您从 netbeans 运行时,默认文件路径(如果您只写 File("indexOut.txt") 文件将位于该位置)是 netbeans 项目文件夹。如果双击 jar 文件,则默认路径是包含 jar 的目录。

于 2012-06-29T21:05:29.757 回答