1

3日間、相対ファイルパスを使用してファイルを読み取る方法を見つけようとしていました。日食では、これはコンパイルしてうまく機能しますが、アプリをエクスポートすると. ファイルが見つからないと言われます。これが私が取り組んでいるスクリーンショットとコードです。

このコードは機能しますが、Eclipse でのみコンパイルされ、完全に機能します。しかし、実行可能なjarファイルとしてエクスポートすると、licenca.txtが見つからないというエラーが表示されます

 BufferedReader in = new BufferedReader(new FileReader(new File("licenca.txt").getPath()));
        String str;
        while ((str = in.readLine()) != null) {
      taLicenca.append(str + "\n");
      
    }

ここに私のプロジェクトファイルのスクリーンショットがあります

ファイル

スキャナー機能を使用してみましたが、結果は同じで、Eclipse では動作しますが、エクスポートでは動作しません。エラーメッセージは次のとおりです。

エラー

4

2 に答える 2

6

そのファイルをクラスパスに入れればうまくいくと思います。

コードを次のように変更します。

InputStream is = this.getClass().getClassLoader().getResourceAsStream("licenca.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(is));
String str;
while ((str = in.readLine()) != null) {
    taLicenca.append(str + "\n");
}

試してみてください。

于 2012-06-17T18:24:28.810 に答える
0

これは、ファイルがファイルの一部としてjarエクスポートされるために発生するため、ファイルを作成するには、または他の何かjarを使用するantmaven、jar を使用してディレクトリにファイルを手動でコピーし、start directory.

于 2012-06-17T18:26:07.953 に答える