6

Eclipse で動的 Web プロジェクトを開発しています。ストア データベースの詳細 (ユーザー名、パスワードなど) の .properties ファイルを作成しました。プロジェクトと New -> File を右クリックして追加しました。Java util パッケージの Properties クラスを使用しました。しかし、それは機能しません。ファイルからプロパティを取得できません。ここに私が使用したコードがあります、

Properties prop = new Properties();

    try {

        prop.load(new FileInputStream("database.properties"));

        String db = prop.getProperty("database");
        String userName = prop.getProperty("dbuser");
        String password = prop.getProperty("dbpassword");

    } catch (IOException ex) {
        ex.printStackTrace();
    }

何か問題がありますか、それともプロパティ ファイルを配置する必要がある特定の場所がありますか。

4

5 に答える 5

6

あなたがしたことは正しいです。つまり、プロジェクトを右クリックして new--file.jvm を開始する場所にプロパティを配置する必要があります。添付画像をご確認ください。プロパティ ファイルは赤でマークされています。プロパティファイルもこのような場所にあるかどうかを確認してください。また、これをコードに追加して、ファイルの配置場所を見つけます。

System.out.println(new File(".").getAbsolutePath());

詳細については、このリンクに従ってください- Java プロパティ ファイルを使用する場合の FileNotFoundException

ここに画像の説明を入力

于 2013-10-28T18:33:07.493 に答える
4

通常、プロパティー・ファイルがプロジェクトのランタイム・クラスパス (例: WEB-INF/classes) にあることを確認してから、システム・クラスローダーまたはプロパティー・ファイル・ハンドラーのクラスローダーのいずれかを使用してロードします (メモリーからのフリーハンド入力 -- コンパイルされていません) 。

try{
     Properties p = new Properties();
     InputStream in = MyPropertyHandler.getClass()
           .getClassLoader()
           .getResourceAsStream("com/package/props/database.properties");
     p.load(in);
catch(IOException e){
     e.printStackTrace(System.err);
}

正しい場所を指していないに違いない。プロパティファイルが正しい場所にあることを確認してください。${CURRENT_WORKING_DIR}/database.propertiesそのコードを使用して、Eclipse の Web アプリの場合である を探しているWEB-INF/classesと思います (私は思います)。

于 2013-10-28T18:16:45.227 に答える
4

代わりに、より移植性の高いjava.util.Properties#load(InputStream)の結果を使用する必要がありjavax.servlet.ServletContext#getResourceAsStream(String)ます。

于 2013-10-28T18:12:24.330 に答える
1

それを使用しているクラスと同じパッケージに.propertiesファイルが必要です。

または、メソッドを使用してプロパティファイルを読み取ることをお勧めしgetResourceAsStreamます (そうしないと、後で .war アーカイブにファイルがあるときに問題が発生する可能性があります)。

InputStream inputStream = 
    getClass().getClassLoader().getResourceAsStream("database.properties");
于 2013-10-28T18:14:47.893 に答える
1

プロパティ ファイルに絶対パスまたは相対パスを指定してみてください。また、このプロパティ ファイル パスがソース フォルダーに追加されているかどうかも確認してください。そうでない場合は、クラス フォルダーにコピーされません。(プロジェクトを右クリックし、ソースタブの下のJavaビルドパスを確認してください。

于 2013-10-28T18:12:02.717 に答える