我正在考虑在命令行上正常启动一个程序。 (即java myprogram)
但我知道可以输入
java myprogram configfile.txt
所以它需要这个字符串,稍后在代码中我可以使用它来加载文件。
如果可能的话,如何使用类似构造函数的方法在程序中捕获此输入。
答案 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 }