0

起動時にファイルを読み取る必要があるjarファイルがいくつかあります。これらのファイルは、jarファイルの隣のディレクトリにあります。これは私のディレクトリリストがどのように見えるかです:

code.jar
config/
       confifile.cfg

次に、コマンドラインプロンプトで、クラスパスを次のように設定します。

set CLASSPATH=./ext/*;./*

次に、プログラムを実行しますが、「configfile.cfg」が見つからないと文句を言い続けます。

/config/configfile.cfgファイルが見つかりません!

このエラーは次のコードに起因します。

try {
    r = new BufferedReader(new FileReader((String)botinfilename));
    fileName=(String)botinfilename;
}
catch (FileNotFoundException e) {
    System.err.println(botinfilename + " is not found");
}

/configディレクトリをjarファイル内に置くと機能することに気づきました。しかし、それを削除してjarの横に置くと、構成ファイルが見つかりません。

これを機能させるためのJava設定のトリックはありますか?

編集1:

私は次のようにプログラムを起動します。

java StartProgram

4

1 に答える 1

0

簡潔にするために、「-cp」JVM オプションを追加しました。私の問題は、ルート ディレクトリ (jar とリソースがある場所) をクラスパスに追加する必要があることでした。以前は * ワイルドカードを使用して jar を追加していました。

java -cp PATH_ROOT_DIR/;PATH_TO_ROOT_DIR/*;PATH_TO_ROOT_DIR/ext/* StartProgram

または、クラスパスを設定できます

set CLASSPATH=./;./ext/*;./*
于 2012-10-04T18:18:51.993 に答える