java main 命令行,3.8 main()方法和命令行参数

3.8  main()方法和命令行参数

main()方法是一个重要而又特殊的方法。它是Java应用程序的入口,JVM在运行字节码文件时,做完初始化之后,就会查找main()方法,从这里开始整个程序的运行。

main()方法是静态方法,它由类共有而不是属于类的某个实例,所以系统可以直接调用main()方法而无需创建它所属的类的实例(实际上这也是做不到的)。因此在运行main()方法时,只能使用该类中的静态成员,如果要使用实例成员,需要先创建该类的实例对象,然后用对象来访问实例成员。

main()方法只能被系统调用,不能被其他任何方法或类调用,这是它和一般静态方法的区别。

【例3.29】 main()方法使用示例。

//-----------文件名showMain.java,程序编号3.44-----------------public class showMain{

private static int sx = 100;

private int    ix = 200;

public static void main(String args[]){

System.out.println("sx=" + sx);     //正确,可以访问静态成员

showMain oa = new showMain();       //创建本类的一个实例对象

System.out.println("oa.ix=" + oa.ix);  //通过对象来访问实例成员

}

}它的输出结果如下:

sx=100

oa.ix=200

在main()方法的括号里面并不为空,它有一个形式参数"String args[]"。其中,String是Java预定义的字符串类,args[]是一个数组,它有若干个元素,每个元素都是一个字符串。

由于main()方法只能由系统调用,因此它的参数也只能由系统传递给它。系统所传递的参数则来自于用户的输入,对于控制台程序而言,在命令行执行一个程序通常的形式是:

java  类名  [参数列表]

其中的参数列表中可以容纳多个参数,参数间以空格或制表符隔开,它们被称为命令行参数。系统传递给main()方法的实际参数正是这些命令行参数。由于Java中数组的下标是从0开始的,所以形式参数中的args[0],……,args[n-1]依次对应第1,……,n个参数。下面这个例子展示了main()方法是如何接收这些命令行参数的。

【例3.30】 命令行参数使用示例。

//-----------文件名getLinePara.java,程序编号3.45-----------------class getLinePara{

public static void main(String args[])

{  //依次获取命令行参数并输出

for(int i=0;i

System.out.println("第"+i+"个参数是:"+args[i]);

}

}

在程序的第4行,用到了一个属性:args.length。在Java中,数组也是预定义的类,它拥有属性length,用来描述当前数组所拥有的元素。若命令行中没有参数,该值为0,否则就是参数的个数。若在命令行输入下列命令:

java getLinePara one two three four相应的输出为:

第0个参数是:one

第1个参数是:two

第2个参数是:three

第3个参数是:four

注意:和C/C++不同,Java的命令行参数中不包括被执行程序本身。

在命令行参数中,各个参数之间以空格分隔,但在某些情况下,这种处理方式并不合适。比如需要程序处理一个在某目录下的文件,但是该目录中间有空格,这就会导致程序无法得到正确的文件路径。例如,在命令行输入:

java getLinePara c:\My Document\test.java相应的输出为:

第0个参数是:c:\My

第1个参数是:Document\test.java它把一个参数拆成两个来处理,显然不符合程序员的设想。在这种情况下,用户需要将命令行参数用双引号括起来。上面的命令应该写成这个样子:

java getLinePara "c:\My Document\test.java"相应的输出结果为:

第0个参数是:c:\My Document\test.java

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值