2012-10-05 50 views
1

我在同一個JVM中有兩個maven項目AB。項目B取決於項目A。在一類項目A中,我需要加載項目B的屬性文件,例如/B/src/main/resource/foo.properties在靜態塊是類似以下內容:從同一個JVM中的另一個項目加載屬性文件

Class bar{//this class is in project A 
    static{ 
    //do the magic to load the property file in project B 
    } 
    } 

什麼是訪問提到的屬性文件項目B正確的道路?

請幫助一個工作僞語句。提前致謝!!

+0

IF,相關資源捆綁(即內的JAR文件)或withing兩個項目的類路徑中,你應該能夠使用'bar.class.getResource (「/resource/foo.properties」),它將返回一個URL到指定的資源。這可能需要您構建有問題的項目 – MadProgrammer

回答

0

由於您已經指定了maven依賴關係,所有classpath資源都是另一個項目可用的另一個項目。

試試這個代碼

public void doSomeOperation() throws IOException { 
     // Get the inputStream 
     InputStream inputStream = Bar.class.getClassLoader() 
       .getResourceAsStream("myApp.properties"); 

     Properties properties = new Properties(); 

     System.out.println("InputStream is: " + inputStream); 

     // load the inputStream using the Properties 
     properties.load(inputStream); 
     // get the value of the property 
     String propValue = properties.getProperty("abc"); 

     System.out.println("Property value is: " + propValue); 
    } 
相關問題