在程序执行时获取输入

时间:2014-11-24 22:42:10

标签: java

我正在考虑在命令行上正常启动一个程序。 (即java myprogram)

但我知道可以输入

  java myprogram configfile.txt 

所以它需要这个字符串,稍后在代码中我可以使用它来加载文件。

如果可能的话,如何使用类似构造函数的方法在程序中捕获此输入。

1 个答案:

答案 0 :(得分:4)

public static void main(String[] args) { ... }

args数组包含命令行中的参数。在您的示例中,文件名为args[0]。但请注意,如果您在代码中硬编码args[0],然后不传递参数,则会得到ArrayIndexOutOfBoundsException,因为args[0]不存在。

如果需要,您可以将其展开以包含多个参数。例如

java myprogram configfile.txt configfile2.txt configfile3.txt

这些文件名分别为args[0] args[1]args[2]

如果您的程序可以使用或不使用参数运行,您可以通过检查数组的长度来确定您是否有一些> 0.像

这样的东西
if (args.length > 0) { myfile = args[0]; }
else { myFile = someDefaultFilename; }

或者如果你可以有多个参数,你可以遍历整个数组

for (String s : args) { //Do something with each parameter }