2012-05-04 7 views
3
propsdatabase = new Properties(); 
InputStream dbin = getClass().getResourceAsStream("/properties/database.properties"); 
propsdatabase.load(dbin); 

データベース接続の詳細は、「プロパティ」という名前のフォルダにある「database.properties」という名前のプロパティファイルを介して読んでいます。 Jusはルートディレクトリの下にあります。プロパティファイルを読み取っているときにヌルポインタ例外が発生しました

Eclipseでjarをエクスポートしたとき、コードは正常に動作していました。

しかし、私はJavarを入手するためにIntelliJのMavenプロジェクトを使用しました。それはNUllポインター例外をスローします。

dbinの値がNULLであるため(私も印刷してチェックしました)。

ファイルを読み取るためにパスが認識されないと判断しました。

今、IntelliJでは問題はありません。

Eclipseでjarファイルとしてエクスポートを実行しているときに、プロパティーフォルダが含まれていますが、ITは検出されません。 plヘルプ

+0

が見える –

+0

はい...右のthats。任意のアイデアこれを克服する方法 – Meenakshi

+0

intellijが使用しているjarファイルのファイル/properties/database.propertiesはありますか? – krock

答えて

2

getResourceAsStreamがnullを返す理由は、/properties/database.propertiesファイルがMavenクラスパスにないためです。

プロパティフォルダを/src/main/resourcesフォルダに移動し、Mavenがjarファイルを作成すると、/properties/database.propertiesリソースがインクルードされ、NPEの取得が停止されます。

+0

ありがとうございます...今はうまくいきます。 – Meenakshi

1

はい、getResourceAsStreamは間違いなくヌルを返します。あなたのjarファイルにはファイルが含まれていないと思われます。試してみてください:

jar tvf yourfile.jar 

を確認してください。次に、jarファイルのビルド手順を確認します。ビルドファイルを見て間違っていると言うのは難しいので、手順を見ても跳ね返ってこない場合は、その情報を含めるように質問を編集してください。

+0

Eclipseのjarファイルは私のために働きます。しかし、私のチームメイトにとっては、パスをまだ認識していない。 Eclipseで処理する方法(jarファイルとしてエクスポートする) – Meenakshi

0

あなたのMavenビルドステップでは、プロパティファイルがjarファイルに含まれていますか?生成されたjarファイルを確認します。名前を変更する方法がわからない場合は、最後に「.zip」を追加して開きます。

+0

私のjarファイルにプロパティファイルがありません。 – Meenakshi

+0

jarファイルをビルドするときに問題がある場合は、ファイル(またはすべての* .propertiesファイルなど)をインクルードする必要があります。 。 –

+0

あなたのMavenのビルドにこのような何かを追加する必要があります:。 SRC **/*プロパティを

0

あなたは性質がパスとのFileInputStreamを使用してファイルの読み取りを試みることができる:あなたのプロパティファイルは、(あなたのjarファイル内のこのケースでは)あなたのクラスパス上にないよう

Properties properties = new Properties(); 
FileInputStream input = null; 
try { 
    input = new FileInputStream(new File(CONFIGURATION_FILE)); 
    properties.load(input); 
}catch(...){...} 
+0

こんにちはDaniel ...これは、CONFIGURATION_FILE = "C://...//database.properties"を指定した場合にのみ機能します。プロパティのハードコードされたパスが必要です。 – Meenakshi

+0

あなたはそうです、私はあなたがjarの外にプロパティファイルを持っていたいと思います。 Guillaume PoletとAndrew Newdigateが指摘するように、解決策はdatabase.propertiesをsrc/main/resourcesに移動することです –

関連する問題