2017-02-08 2 views
0

Я использую плагин gradleapplication для запуска моего класса main. Когда я, как этотполучить аргумент jvm в приложении при выполнении задачи градации

gradle run -Dparameter=5 

И попытаться получить этот аргумент parameter в моей main функции

public static void main(String[] args) { 
    System.getProperty("parameter") 
} 

возвращает null.

Как правильно пройти jvm?

ответ

3

Опция gradle -D устанавливает системное свойство самого Gradle процесса, а не системное свойство задачи, которую требуется запустить.

Вы можете использовать опцию -P (свойство проекта) вместо этого, но тогда вам нужно будет получить значение свойства в вашем Gradle сценарии и установить системное свойство accrodingly:

if (project.hasProperty('myPropertyNameHere')) 
    systemProperty('myPropertyNameHere', myPropertyNameHere) 
+0

Oh действительно. Я забыл разные процессы – lapots

2

Если вашему приложению требуется определенный набор параметров JVM или системных свойств, вы можете настроить свойство applicationDefaultJvmArgs. Эти аргументы JVM применяются к задаче запуска, а также рассматриваются в сгенерированных стартовых сценариях вашего дистрибутива.

Chapter 52. The Application Plugin

например, вы можете добавить

applicationDefaultJvmArgs=["-Dparameter=5"] 

в build.gradle

Смежные вопросы