0

これは私のフォルダ構造です

proj    
   --src   
   --config    
   --bin

Linuxでは

/home/proj/src
/home/proj/config

私の構成フォルダーには、log4j プロパティ ファイルが含まれています。

Linux で Java クラスを実行しようとしています。

これは、Javaクラスでアクセスする方法です(これは確かに間違っています)

String propFile = "/../config/Log4jprop.properties";
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
URL logPropFile = systemClassLoader.getResource(propFile);
PropertyConfigurator.configure(logPropFile);

Linux のクラスからプロパティ ファイルにアクセスできるようにする必要があります。

私のコマンドの一部は次のとおりです

java -classpath /home/proj/config/Log4jprop.properties:./ Start

ログ プロパティ ファイルが確実に読み取られるようにするにはどうすればよいですか?

4

3 に答える 3

0

解決策の1つは次のとおりです。

  1. 「プロパティファイル読み取りコード」を削除します
  2. 次のコマンドを実行します

    java -Dlog4j.configuration = / home / proj / config / Log4jprop.properties:./開始

または:

  1. プロパティファイルの名前をlog4j.propertiesに変更します
  2. クラスパスに追加します
于 2013-03-14T10:40:06.150 に答える
0

クラスパスを「proj」フォルダーに設定した後、これを行うことができます。

    FileInputStream str = null;
    Properties prop = new Properties();
    try 
    {
        str = new FileInputStream("config/Log4jprop.properties");
        prop.load(str);
        PropertyConfigurator.configure(prop);
    }catch( IOException ex ) {
        ex.printStackTrace();
    }finally {
        if( str != null ) {
            try {
                str.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
于 2013-03-14T10:33:33.690 に答える
0

プロパティ ファイルのパスを渡す場合は、次のオプションがあります。

props.load(new FileReader("/home/whatever/config.properties"));
于 2013-03-14T10:29:20.997 に答える