Java初学之命令行参数

在做题的时候遇到了下面一道题:

class C {

public static void main(String[] args) {

for(int i = 1; i < args.length; i++) {

System.out.print(args[i]);

}

}

}

在命令行中执行 :java C D E F

则输输出为 

(A)CDEF    B)DEF    C)EF    D)F 

乍一看我就觉得选B,因为for循环从1开始,C是args[0],所以打印DEF

运行之后打印的却是C:EF

仔细想了一下,java C是执行程序,D才是args[0]


于是我自己扩展了一下关于Java的命令行参数

Java命令行的参数
1、 什么是命令行的参数?
如: java Test1 365 156 "China"
注意:(以上Test1必须为主类,否则不能运行)
2、命令行的参数由谁来接收?
一个程序开始于对函数main()的调用。在这样做的时候,有两个参数被送给main(),
其中的一个描述了命令行参数的个数,通常称为argc;另一个是命令行参数的数组,通常称为argv。(C语言中,标准的main函数就是这样的)
命令行参数都是字符串,所以argv的类型是char* [argc+1]。该程序的名字也作为argv[0]传进来,
所以argc的值至少是1。这个参数的表总以0结束,也就是说,argv[argc]==0。 [1]  
3、在命令行给定参数时,应注意什么?
命令行的参数以空格隔开。但是,若命令行的参数本身包含空格时,则
该参数必须用一对双引号括起来。
如: java Test1 365 156 China "Beijing of China"
4、命令行中输入*(表示乘法)的方法:若直接在命令行中输入*(乘法),系统会处理成当前路径名的几个字符串,若要*表示乘法,应该输入“ *”或“ * ”,由args取得该字符串后,再用trim()去掉两端空格即可,当然也可输入“#*”,然后再想办法去掉前面的#即可,即只要不单独输入*即可。
5、Total Commander启动时可以把一个或两个文件夹做为命令行参数。这些文件夹用来设置一侧或两侧的文件窗口。这样你可以在程序或启动菜单为Total Commander创建多个图标,每个Total Commander启动后打开不同文件夹甚至压缩包。而且可以指定不同的ini文件,不止默认的wincmd.ini,这样同一机器上的不同用户可以拥有不同的设置。

你可能感兴趣的:(Java大用处)