5

初めてLog4Jを使い始めました。log4j.properties ファイルを作成し、Eclipse のプロジェクトのフォルダーに配置しました。また、アプリケーションの実行構成も作成しました (これは単なるデフォルトの実行構成であり、追加のオプションはありません)。

ここで、アプリケーションを実行しようとすると、log4j がそれ自体を初期化できない (プロパティ ファイルを読み取る) というエラー メッセージが表示されます。プロパティファイルがクラスパスにある必要があることはわかっているため、明らかに実行構成がクラスパスを適切に設定していません。

実行構成の [クラスパス] タブに移動すると、次のようになります。

  • ブートストラップ エントリ
  • ユーザーエントリ
    • MyApplication (デフォルトのクラスパス)
    • log4j-1.2.15.jar - C:\Workspace\MyApplication\lib

ただし、プロジェクトのフォルダーを手動で追加すると ([フォルダーの追加]、[詳細設定]、[MyApplication] をクリック)、log4j はそれ自体を初期化できます。

どうしてこんなことに?プロジェクトのフォルダーを手動で追加しない限り、log4j がプロパティ ファイルを見つけられないのはなぜですか? このフォルダはデフォルトでクラスパスにありませんか? (上記の出力は、そうであることを示唆しています。)

4

3 に答える 3

3

いいえ、プロジェクト フォルダー自体はデフォルトではクラスパスにありません。プロジェクトの出力フォルダーは (通常、bin または classes という名前の 1 つのサブフォルダーです)。

log4j.properties をプロジェクトのルート フォルダーではなくソース フォルダーに配置すると、すべてが機能するはずです (ソース フォルダー内の非ソース ファイルは自動的に出力フォルダーにコピーされます)。

一般に、実行構成のクラスパスをいじる必要はありません。ほとんどの場合、プロジェクトのプロパティでビルド パスを変更する (または、あなたの場合のように正しく使用する) 方が適切です。

于 2009-06-16T10:06:00.637 に答える
1

デフォルトでは、プロジェクト フォルダーはクラスパスに追加されません。デフォルトでは、クラスパスにはクラス フォルダーのみが含まれます。

クラスパスに他のフォルダーを手動で追加する必要があります。

于 2009-06-16T10:04:47.037 に答える
0

次の 2 つのオプションがあります。

  • log4j.properties ファイルを src フォルダーの下に置きます
  • 通常は resources または res という名前の追加のソース フォルダーを作成し、そこに log4j.properties ファイルを配置します。

現在機能していない理由は、ファイルがプロジェクトのクラスパスにないためです。[プロジェクト] > [プロパティ] > [Java ビルド パス] からクラスパスを確認できます。

于 2009-06-16T10:05:28.113 に答える