2017-11-20 16 views
0

私はmavenJavaを初めて使用しています。私は、Spring Webフレームワークを使用する大規模なコードベースに取り組んでいます。私はファンダメンタルズを逃しているかもしれませんが、私はプロジェクト実施のすべての基本を踏襲するために全力を尽くしました。私が構築しています機能の
は、私が以前 私のMavenプロジェクト内のsrc /メイン/リソースに保存されていたとmavenプロジェクトの外部jarからプロパティファイルを読み込む方法

ReaderClass.class.getResourceasStream("xyz.properties");

今、この文を使用してReaderClassという名前の私のクラスから読んでいたプロパティファイルを持っています私はこれらのファイルを別々のプロジェクトに外部化し、そこから瓶を作りました。このjarファイルは、resourceという名前のフォルダの下にのみ存在します。
このjarファイルをIntelliJ IDEの依存として追加しました。このjarからプロパティファイルを読み込みたいと思います。 .classファイルだったのですが、でimport文を使用しましたが、どのようにプロパティファイルを読み込むのですか?

ADDITIONAL INFORMATIONまた

、私はこれが問題になるかどうかわからないのですが、IntelliJのは、実際に外部ライブラリ]タブでjarファイルを示していないが、プロジェクト内のモジュールセクションの依存関係]タブで、私のjarファイルを示してい構造。私はこれが解決策に影響しないことを確認したかったのです。

+0

可能な重複:https://stackoverflow.com/questions/33821074/read-properties-file-in-multi-module-projectしかし、あなたはのIntelliJで直接外部ライブラリとしてjarファイルを追加する場合、それはかもしれませんPOMを更新しないでください。私は別の方法で行くことをお勧めします:最初にPOMを更新し、IDEでリロードします。 – Daniel

+0

テストしたいので最初にIDEに追加します。私がartifactをcentral mavenリポジトリにアップロードするとき、私たちはnexusで使います.pom.xmlに依存関係を追加します。あなたが共有したリンクにある解決策は、クラスローダを使用するためにクラスを追加することについて話しています。私はそれをしないことを好むでしょう –

+0

、十分に公正。 ReadClass.class.getClassLoader()を試してください。getResourceAsStream( "xyz.properties"); ' – Daniel

答えて

0

これを行う方法は数多くあります。あなたはこれは、Propertiesオブジェクトとして読み出しデータの周囲を通過する必要がない場合はjava.util.ResourceBundle

を使用して

a=b 
y=z 
mykey=myvalue 

:あなたのxyz.propertiesファイルを想定し

は次のようになります最も簡単な方法です。

ResourceBundle rb = ResourceBundle.getBundle("xyz"); 
System.out.println("a=" + rb.getString("a")); 

使用java.util.Properties

もう少し仕事といくつかのボイラープレートが、同じことを達成します。

Properties p = new Properties(); 
try (InputStream is = getClass().getClassLoader().getResourceAsStream("xyz.properties")) { 
    p.load(is); 
} 
catch (IOException e) { 
    // Handle as appropriately. 
} 
System.out.println("mykey=" + p.getProperty("mykey")); 
2

あなたが春を使用している場合は、リソースフォルダからプロパティを読み取るために

@Value("${property.name}") 
private String property; 

を試してみてください。

+0

プロパティファイルをjava.util.Propertiesオブジェクトにロードする必要があります –

関連する問題