0

私はantを介して構築されたjavaprojectを持っています。クラスファイルをoutput/classes / com/...パスに書き込みます。私のJavaクラスの1つは、出力フォルダーの1レベル上のフォルダーにあるファイルから入力ストリームを読み取る必要があります。ファイルをoutptu/classesの下のパッケージフォルダにコピーすると、機能しているように見えます。しかし、設定ファイルを出力フォルダーに配置したくありません。これは、antcleanを実行するとクリーンアップされるためです。出力フォルダーの上、configフォルダーにあることを確認して、ロードします。

public static final String CONFIG_FILE="/../../../../../../../Config.txt";

public static ConfigObj getConfigObj() throws IOException {

InputStream i=ConfigLoader.class.getResourceAsStream(CONFIG_FILE);

..。

raltivepathをいつ与えたいのか、それは何に関連しているのか知りたいです。調べてみましたが、クラスローダーに関連しているとのことです。この場合のクラスローダーとは何ですか?ConfigLoader.classが存在するoutput/classes / com ...... / configフォルダーですか?

4

1 に答える 1

1

問題は、クラスパスからのgetResourceAsStream()みリソースをロードすることです。クラスパスにしかないと思うので、そのディレクトリの外にある場合、構成ファイルをロードすることはできません。ファイルを指す絶対パスを使用するか、クラスパスに配置します。output/classesgetResourceAsStream()File

于 2013-03-06T20:48:58.737 に答える