目前我有一个.properties文件来存储与框架相关的设置。 示例:
default.auth.url=http://someserver-at008:8080/
default.screenshots=false
default.dumpHTML=false
我编写了一个类来提取这些值,这是该类的方法。
public static String getResourceAsStream(String defaultProp) {
String defaultPropValue = null;
//String keys = null;
try {
InputStream inputStream = SeleniumDefaultProperties.class.getClassLoader().getResourceAsStream(PROP_FILE);
Properties properties = new Properties();
//load the input stream using properties.
properties.load(inputStream);
defaultPropValue = properties.getProperty(defaultProp);
}catch (IOException e) {
log.error("Something wrong with .properties file, check the location.", e);
}
return defaultPropValue;
}
在整个应用程序中,我使用如下方法来确定所需的属性:
public String getBrowserDefaultCommand() {
String bcmd = SeleniumDefaultProperties.getResourceAsStream("default.browser.command");
if(bcmd.equals(""))
handleMissingConfigProperties(SeleniumDefaultProperties.getResourceAsStream("default.browser.command"));
return bcmd;
}
但我还没有决定对此进行更改并使用Ant并传递参数,而不是从.properties文件中使用它。
我想知道如何使用Ant将值传递给Java方法。这些类都没有主要方法,也没有任何主要方法。由于这个原因,我无法使用java系统属性。
答案 0 :(得分:1)
我认为您在调用java时需要使用-Dpropname=propvalue
语法在命令行上传递属性值。请参阅here。
答案 1 :(得分:0)
如果我理解你的问题。
我认为使用args将更容易。每当你运行java程序
java myJavaProgram [param1, param1, ...]
如您所见,我们可以在启动java程序时传递多个参数。然后将所有参数存储到args。
以下是演示如何在java中访问CLI的程序。
public static void main(String[] args){
for(String arg : args){
System.out.println(arg);
}
}
希望这有帮助。
答案 2 :(得分:0)
使用下面的ant
<property name="browser" location="C:/Program Files/Internet Explorer/iexplore.exe"/>
<property name="file" location="ant/docs/manual/index.html"/>
<exec executable="${browser}" spawn="true">
<arg value="${file}"/>
</exec>
您可以使用运行时参数从此直接调用该类,或者您可以使用已传递给类的参数进行批处理,然后调用批处理