| 在使用主控台啟動一個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: // 選項錯誤處理或其它處理 } 以上是命令列引數處理時的大致流程,當然不同的程式會有不同的處理方式,不過大致上不離以上的架構。 |