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

インデックス コレクションには何かがあると思いますか? 最初の like を System.out.println("Writing Index File " + index.size()); に変更することをお勧めします。

同じことをデバッグしてみることができます。

プログラムへの入力が変更されない限り、アプリの動作を変更する理由はありません。

于 2012-06-29T20:18:26.593 に答える
1

現在のディレクトリに相対的であるはずのファイルから、プログラム内のデータを読み取っていると思われます。したがって、相対パスに依存しているかどうかを確認する必要があります。はいの場合、最初のステップとしてそれらを絶対パスに変換します。

于 2012-06-29T20:20:39.410 に答える
0

netbeans から実行する場合、デフォルトのファイル パス ( File("indexOut.txt") と記述するだけでファイルが到達する場所) は、netbeans プロジェクト フォルダーです。jar ファイルをダブルクリックすると、デフォルト パスは jar を含むディレクトリになります。

于 2012-06-29T21:05:29.757 に答える