1

この実装を使用して、ソース パッケージに配置されたファイルのパスを計算したいと思います。

URL pathSource = this.getClass().getResource("saveItem.xml");

以下のコードのような新しいファイルを作成しようとすると:

File xmlFile = new File(pathSource.toString());

そして、私はそれを使って次のような文書を作成しようとしています:

Document document = builder.parse(xmlFile);

これにより、java.io.FileNotFoundExceptionが発生します。ハードコーディングせずにファイルパスを計算するにはどうすればよいですか?

PS:既に pathSource.getPath() を使用しましたが、どちらも機能しません。同様の実装を使用したいと思います。

FXMLLoader loader = new FXMLLoader(getClass().getResource("FXMLDocument.fxml"));

PPS:構造は次のとおりです。 画像

4

3 に答える 3

0
getClass().getResource("saveItem.xml");

返されるクラスと同じパッケージ (ファイル システムを見るとディレクトリ) 内のファイルを探しgetClass()ます。

ファイルがそこにあることを確認してください。また、コードを実行するときに実際にそこにあることを確認してください。ソースフォルダーと、コンパイルされたクラスファイルが配置されるtargetまたはフォルダーには違いがあります。bin

また、何pathSource.toString()が含まれているかを確認してください。

于 2015-11-03T16:32:13.007 に答える
0

簡単な答え - saveItem.xml はクラスパスにありません。Web アプリケーションの場合、ファイルは WEB-INF/classes フォルダーに追加されます。

編集:this.getClass().getResourceAsStream()あまりにも試してみてください。

于 2015-11-03T16:28:28.050 に答える