Topic: 请问main函数参数中args是什么意思?

  Print this page

1.请问main函数参数中args是什么意思? Copy to clipboard
Posted by: 我的剑会笑
Posted on: 2004-11-25 22:12

请问main函数参数中args是什么意思?有时候又是prar[],有时候是argc,我改了字母竟然不会有错,比如说改为abcd,这到底是为什么?这行参数有什么用?改为数字就不行.

2.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: wuyongjin
Posted on: 2004-11-25 23:13

是变量当然可以该了
不过不要该前面的String编译可能通过,不过运行可能出现exception

3.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: woluty
Posted on: 2004-11-25 23:34

还是不懂,能否详细点,谢谢!!

4.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: xxdyy
Posted on: 2004-11-26 13:34

可以视同一个字符串数组

5.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: xxdyy
Posted on: 2004-11-26 14:44

可以试试以下程序
class T
{
public static void mian(String [] args)
{
System.out.println(args[0]);
}
}

编译程序 javac T.java

运行 java T "AAA"

6.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: 浩羽totti
Posted on: 2004-11-26 14:58

args[]是一个数组,在方法中,你使用它时就有用,你不用它就没有用,但也不能少。

7.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: april518
Posted on: 2004-11-27 21:03

  以前好像见有人问过一次这个问题!依稀记得是用来存放命令用的!记得不太清了,楼主可以搜一下以前的帖子!

8.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: yorksaddam
Posted on: 2004-11-29 10:41

这是主函数里面的参数
和C里面的道理是一样的

9.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: april518
Posted on: 2004-11-30 14:52

我 查了 一下,这个是表示main()方法接受到了一个字符串数组,即位于命令行上的参数.<<java core>>.上次讲的有点不太对,见谅喔!有一个例子:
public class Message{
public static void main(String[] a){
if(a[0].equals("-h")Wink
System.out.println("hello world");
else if(agr[0].equals("-g"))
System.out.println("goodbye ");
for(int i=0;i<a.length();i++)
System.out.println(""+a[i]);

}
}
如果调用java Message -g cruel world!
可以看看输出结果!呵呵

10.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: 我的剑会笑
Posted on: 2004-11-30 16:06

谢谢楼上的april518
不过还是不明哦,
你写的程序好像运行不了,还是我太垃圾了呢?

11.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: zhangwh6882
Posted on: 2004-12-02 17:53

楼上的程序需要稍微修改一下  
public class Message{
public static void main(String[] a){
if(a[0].equals("-h"))
System.out.println("hello world");
else if(a[0].equals("-g"))
System.out.println("goodbye ");
for(int i=0;i<a.length;i++)
System.out.println(""+a[i]);

}
}
需要保存成Message.java (注意大小写)
args实际上就是一个字符数组的名字,作用是用来存储java Message后面跟着传进来的参数。名字可以自定义,但是你改成数字当然不行了,需要符合java中变量的命名规则。如果代码里没有用到这个数组的话随便改都没有问题。但是如果程序里面使用了这个数组的话,改名就需要同时将调用的地方一起改掉。楼主比较一下下面两个程序就知道了。
保存为Message2.java
  public class Message1{
public static void main(String[] args){ //声明修改
if(a[0].equals("-h")) //调用没有修改,编译时报错
System.out.println("hello world");
else if(a[0].equals("-g"))
System.out.println("goodbye ");
for(int i=0;i<a.length;i++)
System.out.println(""+a[i]);

}
}

保存为Message2.java
  public class Message2{
public static void main(String[] args){ //声明修改
if(args[0].equals("-h")) //调用相应修改,可以通过编译
System.out.println("hello world");
else if(args[0].equals("-g"))
System.out.println("goodbye ");
for(int i=0;i<args.length;i++)
System.out.println(""+args[i]);

}
}

12.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: liuyuan45
Posted on: 2004-12-03 13:38

楼上说的很详细,清楚,明白,顶顶顶!!!

13.Re:请问main函数参数中args是什么意思? [Re: 浩羽totti] Copy to clipboard
Posted by: prettyxx
Posted on: 2004-12-03 15:41

浩羽totti wrote:
args[]是一个数组,在方法中,你使用它时就有用,你不用它就没有用,但也不能少。

我还是不明白,既然不用它就没有用,那为什么JAVA中还规定必须要写?总要有些道理的嘛

14.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: zhangwh6882
Posted on: 2004-12-03 16:41

prettyxx wrote:
我还是不明白,既然不用它就没有用,那为什么JAVA中还规定必须要写?总要有些道理的嘛


因为java不知道你是不是会带参数执行。例如java Message 或者 java Message Hello。如果要求必须给出args参数。那么可以在程序中通过
if (args.length!=0) System.out.println("此程序不允许带参数执行");
来避免出现无法处理的错误
所以即使不使用args,java也强制要求声明

15.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: april518
Posted on: 2004-12-03 16:51

   对!楼上的这位大哥讲的好!不好意思啊!自己的错误还要让别人来勘误!见谅见谅!以后一定主注意!

16.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: prettyxx
Posted on: 2004-12-03 16:55

收到,那就是说对于MAIN函数,就只能带string的参数,而不是其他类型的了,是吗?

17.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: april518
Posted on: 2004-12-03 17:12

  差不多是这个意思吧!我觉得,在JAVA里面参数都是以字符串的形式来传递的!不知道我这个解释够不够官方!呵呵!

18.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: zhangwh6882
Posted on: 2004-12-03 17:37

我也觉得应该只能是String类型吧,毕竟无法控制使用的人传什么参数,只有用String类型才可以安全地存储

19.Re:请问main函数参数中args是什么意思? [Re: zhangwh6882] Copy to clipboard
Posted by: 我的剑会笑
Posted on: 2004-12-15 21:56

zhangwh6882 wrote:
因为java不知道你是不是会带参数执行。例如java Message 或者 java Message Hello。如果要求必须给出args参数。那么可以在程序中通过
if (args.length!=0) System.out.println("此程序不允许带参数执行");
来避免出现无法处理的错误
所以即使不使用args,java也强制要求声明


非常感谢!我是楼主,谢谢!

但是这里不是很懂,怎么通过“if (args.length!=0) System.out.println("此程序不允许带参数执行");”来避免呢?这样就能避免吗?你是说抛出例外吗?

20.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: sailor
Posted on: 2005-01-04 16:19

在 “if (args.length!=0) "后你可以做任何别的事情,想中断就中断,想扔异常就抛异常。"System.out.println("此程序不允许带参数执行");” 只不过是个例子而已!

21.Re:请问main函数参数中args是什么意思? [Re: 我的剑会笑] Copy to clipboard
Posted by: dennisjl
Posted on: 2005-01-05 16:15

一个main()函数只有是 main(String[] x)才是系统的main函数, 程序开始执行的函数。其实它也不过是一个函数而已,你不必想像为一个很特殊的东西,只是系统会去主动找这个函数来执行。 你也可以在程序中主动调用main(String[]),如:
class A
{
public static void main(String[] x)
{
System.out.println("a");
}
}

public class Test{
public Test()
{
new A().mainFight;
}
}

如果不加参数"String[]",就不是原来这个main函数了,只能叫做自己定义的一个函数。 至于String[] x 中的x 只是一个变量名,随便你定义。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923