1

私はここのコードに基づいて設定ファイルを読み込もうとしています:

http://www.opencodez.com/java/read-config-file-in-java.htm

したがって、config.cfgがコードを実行している場所と同じディレクトリにある場合はすべて問題ありませんが、構成が別のディレクトリにある場合は

example: /path/to/config.cfg

このエラーが発生します:

java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at packagename.conf.Config.<init>(Config.java:14)
at packagename.conf.Config.main(Config.java:30)

私の推測では、ファイルが見つかりません。しかし、別のフォルダーから構成ファイルを読み取るように上記のコードを変更するにはどうすればよいですか?ありがとう

編集:リンクからのコード:

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("myapp/config.cfg"));         
    }catch(Exception eta){
        eta.printStackTrace();
    }
   }

   public String getProperty(String key)
   {
    String value = this.configFile.getProperty(key);        
    return value;
   }
}
4

1 に答える 1

4

投稿したコードは、構成ファイルがクラスパス上にあることを想定しています(つまり、Javaが.classファイルを検索するのと同じ種類の場所にあります)。したがって、構成ファイルを含むディレクトリをクラスパスに含めることができます。

java   -classpath .:/path/to   packagename.conf.Config

または、構成ファイルが通常のファイルシステムファイルになるようにコードを変更できます。

final InputStream cfg = new FileInputStream("/path/to/config.cfg");
try
    { configFile.load(cfg); }
finally
    { cfg.close(); }
于 2013-01-03T23:46:42.457 に答える