在使用主控台启动一个Java程序时,我们可以一并指定一些参数,以让程序进行相对应的功能,例如: $java 类名称 -compare a.java b.java
像这样的功能,您可以使用命令行参数(Command line argument)来达到,在我们撰写主程序时,会在参数列撰写String[] args,它就是用来接受一个参数指定的字符串数组,您只要使用索引取出args中的元素值,就可以取出程序运行时的参数,下面这个程序是个简单的示范:
public class CommandLineArg { 执行结果:
args索引0的值是从程序名称后第一个参数开始,以空白为区隔依序储存在args数组中,当然,您可以使用 J2SE 5.0 的foreach来改写上面的程序:
public class CommandLineArg { 接下来介绍一些处理命令行参数的技巧,由于命令行参数是储存在数组中,取出这些参数的最好方式当然就是使用for循环,而我们通常使用一个前导字节, 例如'-'来指定参数的选项功能,由于arg是个字节数组,自然的您可以使用switch来比对前导字节,例如: for(String arg : args) {
switch(arg.charAt(0)) { case '-': // 处理参数,执行选项,例如-o、-p、-r等等 default: // 执行对应功能 } } 在判断执行选项的case中,您可以进一步检查第二个字节,例如: switch(arg.charAt(1)) {
case 'o': // 选项o的处理 break; case 'p': // 选项p的处理 break; case 'r': // 选项r的处理 break; default: // 选项错误处理或其它处理 } 以上是命令行参数处理时的大致流程,当然不同的程序会有不同的处理方式,不过大致上不离以上的架构。 |