java main方法参数

时间:2021-07-31 17:32:16
为什么 不加 String[] args  main方法就不会执行?到底这个参数起什么作用?

15 个解决方案

#1


问的好啊 我也一直想知道

#2


main方法中有一个输入参数,类型为String[],这个是 java的规范,main()方法中必须有一个入参,必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。
 
因此,main()方法定义必须是:“public static void main(String 字符串数组参数名[])”。

#3


入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错

#4


引用 3 楼 ticmy 的回复:
入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错

java main方法参数

#5


    如果你在命令行输入命令来执行一个java可执行文件,有时候在启动的时候会需要参数
    比如一个类叫test 它可以从命令行获取一个String变量 并把它输出 ,则命令行命令为:
    java test value     这个value就是存在那个String[] args  中的一个变量 程序输出结果就是 :
    value

#6


3楼说清楚了!

#7


看下面的简单代码
class Test{
    public static void main(String[] args){
        if(args.length>0){
    for(int i=0;i<args.length;i++){
System.out.println(args[i]);
    }
}
    }
}

 String类型的数组args主要用来接受命令行的参数, 但命令行的参数不包括 java Test 这样的字符串,如果在命令行输入 java Test red,那么就会打印出red。
当在命令行输入参数,执行的时候这个参数就会保存在args这个数组中, 我们就可以用args获取命令行的这个参数
 
 对于main方法来说,它是由java虚拟机调用的,所以是public
 调用的时候不需要产生任何对象,所以声明为static
 main方法是由java虚拟机调用,不需要产生返回值,所以返回类型为void


#8


jvm会在启动的时候查找这个函数啊void fun1(){}和void fun1(int a){},你觉得是一个函数吗?呵呵所以参数是不可以少的。

#9


引用 4 楼 lost_guy_in_scut 的回复:
引用 3 楼 ticmy 的回复:

入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错


+1

#10


这是规范  你不能去改变 也不要求问为什么

#11


必须是string数组,args只是个名字,可以随便换

#12


引用 3 楼 ticmy 的回复:
入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错

顶一下
这是jvm规范,定死的
楼主不必太纠结

#13


可以用args向main传参的~用命令行的时候直接在 java 类名 参数 

#14


 学习!

#15


这是规范,记住就行了

#1


问的好啊 我也一直想知道

#2


main方法中有一个输入参数,类型为String[],这个是 java的规范,main()方法中必须有一个入参,必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。
 
因此,main()方法定义必须是:“public static void main(String 字符串数组参数名[])”。

#3


入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错

#4


引用 3 楼 ticmy 的回复:
入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错

java main方法参数

#5


    如果你在命令行输入命令来执行一个java可执行文件,有时候在启动的时候会需要参数
    比如一个类叫test 它可以从命令行获取一个String变量 并把它输出 ,则命令行命令为:
    java test value     这个value就是存在那个String[] args  中的一个变量 程序输出结果就是 :
    value

#6


3楼说清楚了!

#7


看下面的简单代码
class Test{
    public static void main(String[] args){
        if(args.length>0){
    for(int i=0;i<args.length;i++){
System.out.println(args[i]);
    }
}
    }
}

 String类型的数组args主要用来接受命令行的参数, 但命令行的参数不包括 java Test 这样的字符串,如果在命令行输入 java Test red,那么就会打印出red。
当在命令行输入参数,执行的时候这个参数就会保存在args这个数组中, 我们就可以用args获取命令行的这个参数
 
 对于main方法来说,它是由java虚拟机调用的,所以是public
 调用的时候不需要产生任何对象,所以声明为static
 main方法是由java虚拟机调用,不需要产生返回值,所以返回类型为void


#8


jvm会在启动的时候查找这个函数啊void fun1(){}和void fun1(int a){},你觉得是一个函数吗?呵呵所以参数是不可以少的。

#9


引用 4 楼 lost_guy_in_scut 的回复:
引用 3 楼 ticmy 的回复:

入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错


+1

#10


这是规范  你不能去改变 也不要求问为什么

#11


必须是string数组,args只是个名字,可以随便换

#12


引用 3 楼 ticmy 的回复:
入口方法的签名就是public static void main(String[] sdss)

必须是public的
必须是static的
必须是void的
方法名必须是main
方法参数必须是String数组

jvm启动就按照这个标准去找这个方法,找到就执行,找不到就报错

顶一下
这是jvm规范,定死的
楼主不必太纠结

#13


可以用args向main传参的~用命令行的时候直接在 java 类名 参数 

#14


 学习!

#15


这是规范,记住就行了