Java 什么';程序参数和虚拟机参数之间的区别是什么?
我发现只有在将Java 什么';程序参数和虚拟机参数之间的区别是什么?,java,eclipse,Java,Eclipse,我发现只有在将-Dcontext=web放入VM参数时,才能通过System.getproperty方法读取该值。我想知道这两者之间有什么区别?程序参数可通过main(String args[])方法的args[]获得程序参数进入main()方法: 程序参数是传递给程序的参数,在主方法的args数组中可用 public static void main(String[] args) 虚拟机参数被传递到虚拟机,用于指示虚拟机执行某些操作。您可以执行诸如控制堆大小等操作。您的程序可以通过调用Sy
-Dcontext=web
放入VM参数时,才能通过System.getproperty
方法读取该值。我想知道这两者之间有什么区别?程序参数可通过main(String args[])方法的args[]获得程序参数进入main()方法:
程序参数是传递给程序的参数,在主方法的
args
数组中可用
public static void main(String[] args)
虚拟机参数被传递到虚拟机,用于指示虚拟机执行某些操作。您可以执行诸如控制堆大小等操作。您的程序可以通过调用System.getProperty()
来访问它们,如您所述。- 程序参数-我们通常传递到程序中的参数。可以使用main方法中的“args”字符串数组访问此类型参数
- VM arguments—传递到Java解释器的参数
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]);
}
有两种方法可以传递这两个参数值
来自Eclipse的:
如上图所示
命令行参数:
java -cp -DsysProp1=testing123456 projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar 123
为了更好地演示,请使用多行
java -cp
-DsysProp1=testing123456
projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar
123
顺便说一句,
VM参数
在jar
之前,使用-D
和程序参数
在jar
之后,只是为了添加一个关于-Djava.library.path=/path/to/folder/
的微妙点。System.loadLibrary()
无法链接本机库,尽管System.getProperty(“java.library.path”)
返回本机库所在的/path/to/folder/
字符串。例如,在EclipseIDE中,您必须在IDE菜单设置中专门设置此文件夹位置的值。通过System.setProperty()
以编程方式设置它将不起作用。
java -cp
-DsysProp1=testing123456
projectJar-2.0-SNAPSHOT-jar-with-dependencies.jar
123