我一直想问我的大学教练在public static void main(String[] args)
中有什么具体的做法,但我从来没有机会,因为这是上一学期,我从来没有真正做过什么,它的重要性,我们只是用它因为练习。但是当我尝试学习C#时,出现了这类问题,(我试图从MSDN教程中学习C#,但命令行参数的定义并不是那么深入和密集)。什么是命令行参数?
答案 0 :(得分:2)
在主可执行文件名之后传递的任何内容:
helloworld.exe arg1 arg2 "arg 3"
在这种情况下,控制台会将arg1
和arg2
解释为前两个参数,将"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 computerA
。 ComputerA
将是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
。