2012-04-05 63 views
1

所以我简单的问题给大家的是,会有人能够向我解释的根本原因,以我为什么要分析在(字串[] args)一个说法?我对这个话题不是非常了解,并希望得到一些快速的帮助,这样我就可以更好地理解事情。解析参数

谢谢!

+0

什么是“分析一个说法”是什么意思? – 2012-04-05 00:27:32

+0

这是'java.exe'命令行参数暴露给你的代码的方式。 – ulmangt 2012-04-05 00:29:06

回答

3

你问为什么你会怎么做呢?那么,当有一个需要(或要求)做到这一点。如果您的应用程序应,例如,支持像-install-debug-foo -bar -quick -user=simpson -pass=bart

在Linux的方式ls类似的论点支持像-R递归和dir为“DOS”支持/S递归参数。您希望“解析”这些论点(例如“看看他们,弄清楚他们的意思”),以使您的申请相应地执行。

+0

Hi Rob。感谢您的解释!因此,根据我对你的帖子的理解,字符串参数必须被解析,因此,比如说,在linux中,与应用程序一起调用一个标志?喜欢说:java helloworld recursive = java helloworld -R?如果这没有通过解析方法,递归“标志”将不起作用? – 2012-04-05 17:09:31

+0

我不能让它变得比这更简单:'args' string []被传入main中是有原因的。当你(例如你的代码)选择忽略参数时,应用程序将如何受到这些参数的影响?这不像是一些神奇的东西,它知道像''/ FOO''或''-WhoopteeDoo''这样的随机字符串应该做什么,并使您的应用程序相应地执行。这就像创建一个'返回7'的'​​sum(a,b)'函数。通过忽略参数,代码不会做你想做的事情。你需要'返回a + b'。传递给main的args []也一样。 – RobIII 2012-04-05 21:32:47

1

这是一个在Java命令行应用程序的工作非常方便的方式。例如,如果您想创建一个批处理文件来运行某个Java应用程序(也许它在您的计算机上设置邮件配置文件),则可以使用命令行参数来输入甚至是标准操作系统值,例如用户名,等

你需要做这一切的时候?哎呀不,但就像编程中的所有东西一样,它是我们在适当时使用的工具。 :)

0

典型的程序使用命令行参数会,例如,测试,如果一个数是素数:

java mytools.IsPrime 1234567 

或翻译程序可以帮助找到一个翻译:

java mytools.Translate Kindergarten 

在Windows上,你可能很少使用的命令行,但如果你通过通过拖放文件的列表拖放到你的程序,操作系统将这种动作名称的列表,这是传递给你的程序,这样你就可以操作对他们:

java mytools.PrettyPrint PrettyPrint.java Translate.java IsPrime.java