8

次のコードの実行中にこのエラーが発生する構成ファイルを読み取る必要があります。

java.util.Properties$LineReader.readLine

ファイル config.cfg が存在し、読み取り/書き込み権限があります。

import java.util.*;
import java.util.Properties;

public class Config   
{
 Properties configFile;
 public Config()
 {
configFile = new java.util.Properties();
try {           
  configFile.load(this.getClass().getClassLoader().
  getResourceAsStream("config.cfg"));           
}catch(Exception eta){
     eta.printStackTrace();
}
}

public String getProperty(String key)
{

 String value = this.configFile.getProperty(key);       
 return value;

 }

}

編集 - 完全なエラー

 [java] java.lang.NullPointerException
 [java]     at java.util.Properties$LineReader.readLine(Properties.java:418)
 [java]     at java.util.Properties.load0(Properties.java:337)
 [java]     at java.util.Properties.load(Properties.java:325)
 [java]     at Config.<init>(Unknown Source)
 [java]     at ClosureBuilder.<clinit>(Unknown Source)

編集 - ディレクトリ構造

ソース

-> config.java

-> config.cfg

4

4 に答える 4

10

あなたはあなたのファイルが置かconfig.cfgれているのと同じフォルダにあなたを置かなければなりません。.class

于 2012-05-23T06:30:17.793 に答える
0

this.getClass().getResource("/"); を使用して、構成用に取得するパスを確認してください。

于 2012-12-12T11:31:55.330 に答える
0

リソース ストリームが null として返されています。リソースは、クラスパスにあると思われる場所ではありません。

于 2012-05-23T06:05:22.500 に答える
0

あなたのプログラムはconfig.cfgファイルを見つけることができないようです。

this.getClass().getClassLoader().getResourceAsStream("config.cfg")

上記の呼び出しは を返しnullます。

以下を試してください:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("config.cfg")
if(is !=null){
    configFile.load(is);
}

この変更により、プログラムが失敗することはありません。ただし、ファイルが見つからない場合、プロパティ オブジェクトconfigFileにはファイルのプロパティがありません。

于 2012-05-23T06:05:43.977 に答える