Java中的main方法和Javafx中的launchargs
Java中的main方法和Javafx中的launch(args)
关于main的声明:
1.java虚拟机调用的,所以必须为public;
2.当一个类中有main()方法,执行命令“java 类名”则会启动虚拟机执行该类中的main方法。
由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用因此需要是限制为public static。(类名.main())
3. jvm有限制,不能有返回值,因此返回值类型为void;(似乎是因为拿不到返回值,所以干脆不要了)
4.main函数只能出现在公共类中也就是public class中
除了这个,main方法中的args[]是用来干什么的,我之前就一直好奇。后来查资料才知道:
main()方法中字符串参数数组作用是接收命令行输入参数的,命令行的参数之间用空格隔开。
参数args为程序使用者在命令行状态下与程序交互提供了一种手段。
比如:javac Test1.java
java Test1 60 50 40
接下来遍历args[]数组,
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
结果就是 60 50 40
还有一个问题:Javafx中Application.launch()传入的参数为什么是args
初学javafx的时候就遇到了这个:
public static void main(String[] args) {
launch(args);
}
其实这个传参目的是
用于从控制台传入参数,就像 main 函数 main(String[] args)一样,args 是控制台传过来的参数。
有时候需要启动的时候传入参数就会用到这个,比如在控制台执行命令 java Demo abc
,abc 便会作为参数 args 传到 main 函数。
我们知道传数组名其实就是传地址。Javafx 中 Application.launch()是 static
public static void launch(String... args) {
...........
...........
}
那么有个问题来了,我们经常用 eclipse 或者 idea 这种工具编写 java 程序然后运行,而不是用 javac java 这种 dos 窗口的形式,那么怎么向 args 数组传递参数呢。
eclipse 中可以在运行的时候选择运行参数 : 点击 Run -> Run Configurations -> Java Application ,然后选择项目对应的类 Test1 ,再点击 Arguments,在 program arguments 框中 输入字符串"60 50 40"作为程序运行参数,然后点 Apply -> Run