我正在查看正常情况下在命令行上启动程序。 (即Java的myprogram)在程序执行时进行输入
但是我知道这是可能键入
java myprogram configfile.txt
所以需要这个字符串,并稍后在代码中,我可以用它来加载文件。
如何在程序中使用类似构造函数的方式捕获此输入。
我正在查看正常情况下在命令行上启动程序。 (即Java的myprogram)在程序执行时进行输入
但是我知道这是可能键入
java myprogram configfile.txt
所以需要这个字符串,并稍后在代码中,我可以用它来加载文件。
如何在程序中使用类似构造函数的方式捕获此输入。
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 }
感谢您观看我的背影。 – csmckelvey 2014-11-24 22:49:54
我该如何做代码来检查是否通过了一个参数?如果执行if语句,则会抛出此异常(args [0]!= null){ \t \t \t filename = args [0]; \t \t \t} – chostwales 2014-11-24 22:59:30
我会将其添加到答案。 – csmckelvey 2014-11-24 23:01:43
您是否搜索过获取Java命令行输入的内容? – 2014-11-24 22:44:22
[Java命令行参数]的可能重复(http://stackoverflow.com/questions/716153/java-command-line-arguments) – 2014-11-24 22:49:00