Какая разница между аргументами программы и аргументами VM?
Я нашел, только когда я поместил -Dcontext=web
в аргументы VM, значение можно прочитать методом System.getproperty
. Мне интересно, какая разница между этими двумя?
Ответы
Ответ 1
Аргументы программы - это аргументы, переданные вашей программе и доступные в массиве args
вашего основного метода
public static void main(String[] args)
Аргументы VM передаются на виртуальную машину и предназначены для указания виртуальной машине сделать что-то. Вы можете делать такие вещи, как контроль размера кучи и т.д. Их можно получить в вашей программе по вызову System.getProperty()
, как вы описали.
Ответ 2
Аргументы программы доступны через args [] вашего основного метода (String args [])
Ответ 3
Программные аргументы переходят в метод main():
public static void main(String[] args) // here
Ответ 4
- Программные аргументы - аргументы, которые мы обычно передаем в нашу программу. Доступ к этим параметрам можно получить с помощью массива String args в основном методе.
- Аргументы VM - аргументы, передаваемые в интерпретатор Java.
Ответ 5
![enter image description here]()
Программный аргумент: Программные аргументы - это аргументы, которые передаются вашему приложению и доступны через строковый параметр массива args вашего основного метода.
Аргумент VM: Аргументы VM - это аргумент среды или системы, который необходим JVM для выполнения программы. Аргументы VM считываются из системного свойства, как показано ниже в инструкции Java.
System.getProperty(sysProp1)
Фрагмент кода:
public static void main(String[] args) {
String sysProp1 = "sysProp1";
System.out.println("\t System Propery Name:" + sysProp1 + ", Value:" + System.getProperty(sysProp1));
System.out.println("\t Program Variable Test Propery Name:" + args[0]);
}
Есть два способа передачи этих двух значений параметров.
Из Затмения:
Аргумент командной строки:
java -cp projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar com.first.jobs.IndexJob testing -DsysProp1=testing