0

我正在尝试读取单独的“GetConfigProperties”类文件中的属性文件并将值传递给主函数“LoginTest.java”。但我无法获得预期的属性值,代码中也没有显示错误。

我在 src/config.properties 中有属性文件 我在 src/com.automation.test -> LoginTest.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() 的形式访问获取数据,但失败了。

PS - 我查看了许多问题和答案,因为我对 Java 完全陌生,所以无法理解它们,因为一切似乎都是独一无二的。

4

1 回答 1

1

以下是访问属性的方式:

GetConfigProperties.ExtractUrlData();

这会调用静态方法ExtractUrlData()(应该调用它extractUrlData()以符合 Java 命名约定)。您没有在任何地方调用 的GetConfigProperties()方法GetConfigProperties,这是填充 Properties 对象的地方。

您应该选择:属性是静态的,并且应该在加载类时通过静态方法或静态块填充:

private static Properties props = createAndPopulateProperties();

或者它应该是一个实例字段,可以由类构造函数或其初始化对象的实例方法之一填充。

另一个问题是运行您的应用程序的用户将文件与您完全相同的文件夹中的可能性非常低(如果他甚至运行 Windows)。您应该将属性文件与应用程序的 .class 文件捆绑在一起(在同一个 jar 或同一个目录中),并使用类加载器来加载资源:

InputStream is = GetConfigProperties.class.getResourceAsStream("/config.properties");
于 2013-08-15T11:10:55.710 回答