目录

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