我正在尝试在单独的“GetConfigProperties”类文件中读取属性文件,并将值传递给主函数“LoginTest.java”。但是我无法获得预期的属性值,并且代码中也没有显示错误。
我在src / config.properties中有属性文件 我在src / com.automation.test中有主要功能 - > LoginTest.java 我有java函数来读取src / com.library.helper中的属性文件 - > GetConfigProperties.java
我在下面给出了读取Config属性的代码
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()的形式访问获取数据但是失败了。
P.S - 我研究了许多问题和答案,因为我对Java完全不了解,因为一切看起来都很独特。
答案 0 :(得分:1)
以下是访问属性的方法:
GetConfigProperties.ExtractUrlData();
这会调用 static 方法ExtractUrlData()
(应该称为extractUrlData()
以符合Java命名约定)。您无处调用GetConfigProperties()
的{{1}}方法,这是填充Properties对象的位置。
您应该选择:属性是静态的,应该在加载类时,通过静态方法或静态块填充:
GetConfigProperties
或者它应该是一个实例字段,可以由类构造函数或其初始化对象的实例方法填充。
另一个问题是,运行您的应用的用户将该文件与您完全相同的文件夹(如果他甚至运行Windows)的可能性非常小。您应该将属性文件与应用程序的.class文件捆绑在一起(在同一个jar或同一目录中),并使用类加载器加载资源:
private static Properties props = createAndPopulateProperties();