什么是命令行参数?

时间:2012-01-19 13:45:04

标签: c# java command-line-arguments

我一直想问我的大学教练在public static void main(String[] args)中有什么具体的做法,但我从来没有机会,因为这是上一学期,我从来没有真正做过什么,它的重要性,我们只是用它因为练习。但是当我尝试学习C#时,出现了这类问题,(我试图从MSDN教程中学习C#,但命令行参数的定义并不是那么深入和密集)。什么是命令行参数?

7 个答案:

答案 0 :(得分:2)

在主可执行文件名之后传递的任何内容:

helloworld.exe arg1 arg2 "arg 3"

在这种情况下,控制台会将arg1arg2解释为前两个参数,将"arg 3"解释为第三个参数。 CLI(在本例中为命令行解释器)将使用空格作为分隔符。

还要记住,如果可执行文件的路径包含空格:

hello world.exe

然后命令行解释器通常将hello解释为命令,world.exe作为第一个参数;因此,在这种情况下,引号对于实际描述命令结束和参数开始的位置非常重要。

您的应用程序无法控制如何解析引号;因此,如果你需要有自己的参数引用系统(例如,如果你将运行时参数打包到一个推荐行参数中),你可能需要构建自己的解析器并使用自己的引用系统;例如使用'甚至括号。

答案 1 :(得分:1)

命令行参数是从命令行调用时传递给可执行文件的参数(“DOS提示符”),例如

C:\Users\dtb>MyProgram.exe These are command line arguments

此外,当您将文件扩展名(例如.foo)与可执行文件关联时,双击该文件时,文件名将作为命令行参数传递给可执行文件。

答案 2 :(得分:1)

命令行参数是使用该程序调用的字符串。例如:ping computerAComputerA将是ping的命令行参数。

答案 3 :(得分:1)

  

如果我使用IDE,我的程序是否仍然有用?

AFAIK,所有IDE都支持带命令行参数的程序。

  

如果我删除(String [] args)?

当你开始时,只有一个名为

的方法
public static void main(String[] args) 

public static void main(String... args) 
调用

是因为这是预期的。

如果你有方法

public static void runme(String... args) // won't be called.
public int main(String... args) // won't be called.
public static int main(String... args)  // won't be called.
public static void main()  // won't be called.

这些方法不一样,你会收到错误。

答案 4 :(得分:0)

这些是您可以在启动时传递应用程序的参数。它们用空格隔开。 见这里:http://en.wikipedia.org/wiki/Command-line_interface

答案 5 :(得分:0)

是的,您传递了一些参数。说我会像这样运行你的程序:

java -jar yourApplication.jar Pavel Janicek

然后

args[0] = "Pavel"
args[1] = "Janicek"

您可以稍后打印出来,或者用作程序的变量

答案 6 :(得分:0)

命令行参数是您在运行程序时提供的参数。与java -jar myprogram arg1 arg2类似,例如在运行java myprogram arg1 arg2而不是java myprogram的java中。

所以,下面的代码:

for (String arg : args) 
System.out.println(arg);

输出将为arg1 arg2

这意味着first argument = arg1 and second argument = arg2