Передача переменной в метод Java из цели Ant - PullRequest
4 голосов
/ 25 мая 2010

На данный момент у меня есть файл .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.

Мне было интересно, как я могу передать значение в метод Java с помощью Ant. Ни один из этих классов не имеет основных методов и не будет иметь никаких основных. Из-за этого я не смог использовать системные свойства Java.

Ответы [ 3 ]

1 голос
/ 25 мая 2010

Я думаю, вы захотите передать значения свойств в командной строке, используя синтаксис -Dpropname=propvalue при вызове Java. Смотри здесь .

0 голосов
/ 24 июня 2015

Используйте муравья, как показано ниже

<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>

Вы можете напрямую вызывать класс из этого с аргументами времени выполнения или Вы можете сделать пакет с параметром, уже переданным классу, а затем вызвать пакет

0 голосов
/ 23 июня 2015

Если я правильно понял ваш вопрос.

Полагаю, использование args будет проще. Всякий раз, когда вы запускаете Java-программу

java myJavaProgram [param1, param1, ...]

Как видите, мы можем передавать несколько параметров при запуске Java-программы. Все параметры будут сохранены в аргументах.

Ниже приведена программа, демонстрирующая, как получить доступ к CLI в Java.

public static void main(String[] args){
   for(String arg : args){
      System.out.println(arg);
   }

}

Надеюсь, это поможет.

...