簡體   English   中英

從屬性文件讀取值

[英]Reading values from properties file

我正在嘗試在單獨的“ GetConfigProperties”類文件中讀取屬性文件,並將該值傳遞給主函數“ LoginTest.java”。 但是我無法獲得預期的屬性值,並且代碼中也沒有顯示錯誤。

我在src / config.properties中有屬性文件,在src / com.automation.test-> LoginTest.java中有主要功能,在src / com.library.helper-> GetConfigProperties中有讀取功能文件的java函數。爪哇

我的代碼讀取配置屬性如下

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties; 

public class GetConfigProperties {

//protected File file = new File("config.properties");
protected static Properties props = new Properties();
InputStream is = GetConfigProperties.class.getResourceAsStream("/config.properties");

    public static String extractUrlData(){
    String webUrl = props.getProperty("webUrl");
    return webUrl;
    }
}

-同樣,我在主LoginTest.java中導入了此類文件,並嘗試以GetConfigProperties.ExtractUrlData()訪問獲取數據,但失敗了。

PS-我研究了許多問題和答案,由於我是Java的新手,所以我無法理解它們,因為一切似乎都是獨一無二的。

訪問屬性的方法如下:

GetConfigProperties.ExtractUrlData();

這將調用靜態方法ExtractUrlData() (為了符合Java命名約定,應將其稱為extractUrlData() )。 無處你調用GetConfigProperties()的方法GetConfigProperties ,這是Properties對象填充的位置。

您應該選擇:屬性是靜態的,並且應該在加載類時通過靜態方法或靜態塊來填充:

private static Properties props = createAndPopulateProperties();

或者它應該是一個實例字段,可以由類構造函數或其實例方法之一填充,以初始化該對象。

另一個問題是,運行您的應用程序的用戶將文件與您完全放在同一文件夾中的可能性很小(如果他甚至正在運行Windows)。 您應該將屬性文件與應用程序的.class文件捆綁在一起(在同一jar或同一目錄中),並使用類加載器加載資源:

InputStream is = GetConfigProperties.class.getResourceAsStream("/config.properties");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM