Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類參考

Java 有用資源

Java - 命令列引數



Java 中,命令列引數是用於在應用程式執行期間向 Java 程式傳遞輸入的一種方式。命令列引數可以透過多種方式傳遞給 Java 應用程式或程式。最常見的是,命令列引數是從執行 Java 程式 的控制檯傳遞的。在程式執行期間提供的命令列引數在main()方法中作為 字串 陣列捕獲。

傳遞和訪問命令列引數

考慮以下傳遞命令列引數的語法

javac tester.java
java tester arg1 arg2 arg3

這裡我們編譯了一個名為 tester.java 的 Java 檔案,並在使用 java 執行 tester 類時,傳遞了三個用空格分隔的引數。我們可以向 Java 程式傳遞任意數量的命令列引數。 Java 虛擬機器 (JVM) 將這些輸入封裝到args[]陣列中。我們可以使用args.length檢查傳遞的引數數量。如果沒有命令列引數,則此陣列為空。

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

我們可以使用命令列引數傳遞字串、整數和任何其他原始值。傳遞的每個引數都按輸入順序在陣列中可用,從args[0]開始。

命令列引數的優勢

  • 命令列引數允許透過在應用程式啟動前傳遞引數來配置應用程式行為。批處理過程就是一個例子,其中大量使用命令列引數來執行帶有配置引數的 Java 命令。此機制可以透過控制檯輸入動態引數化 Java 程式,從而增強程式的多功能性和互動性。
  • 對於基於控制檯的應用程式,命令列引數有助於使用者輸入的檢索和操作。

單個命令列引數示例

在此示例中,我們檢查是否恰好傳遞了一個引數來表示名稱。如果未傳遞任何引數或傳遞了多個引數,則我們列印錯誤訊息“傳遞的引數數量無效”。否則,我們將列印帶有問候語的名稱。

public class Tester {

   // args array represents the command line arguments passed
   public static void main(String[] args) {
      // if only one argument is passed
      if(args.length == 1) {
	     String name = args[0];
         System.out.println("Welcome " + name + "!");
      }else { // otherwise print an error message
         System.out.println("Invalid Command line argument(s) passed.");        
      }	   
   }
}

輸出

讓我們編譯並執行上述程式,不帶任何命令列引數,這將產生以下結果:

D:\test>javac Tester.java

D:\test>java Tester
Invalid Command line argument(s) passed.

這裡,我們使用 javac 命令編譯了 Java 程式碼,然後使用 java 命令在不帶任何命令列引數的情況下執行。讓我們再次執行 java 命令並帶上所需的引數。

D:\test>java Tester Mahesh
Welcome Mahesh!

多個命令列引數示例

在此示例中,我們檢查是否恰好傳遞了兩個引數來表示名稱和年齡。由於年齡是一個數字,因此我們使用 parseInt() 方法解析引數。如果未傳遞任何引數或傳遞了兩個以上引數,則我們列印錯誤訊息“傳遞的引數數量無效”。否則,我們將列印收到的名稱和年齡。

public class Tester {

   // args array represents the command line arguments passed
   public static void main(String[] args) {
      // if two arguments are passed
      if(args.length == 2) {
	     String name = args[0];
         // parse the age as int
         int age = Integer.parseInt(args[1]);
         System.out.println("Name: " + name + ", age: " + age);
      }else { // otherwise print an error message
         System.out.println("Invalid Command line argument(s) passed.");        
      }	   
   }
}

輸出

讓我們編譯並執行上述程式,不帶任何命令列引數,這將產生以下結果:

D:\test>javac Tester.java

D:\test>java Tester
Invalid Command line argument(s) passed.

這裡,我們使用 javac 命令編譯了 Java 程式碼,然後使用 java 命令在不帶任何命令列引數的情況下執行。讓我們再次執行 java 命令並帶上所需的引數。

D:\test>java Tester Mahesh 40
Name: Mahesh, age: 40

結論

Java 命令列引數對於建立可以動態接受引數的已引數化 Java 程式非常有用。使用者可以對程式的行為進行執行時控制,因為引數可以傳遞到 main() 方法。使用命令列引數,我們可以管理程式的輸出、設定設定引數以及在執行時指定輸入檔案,而無需任何編譯時依賴項。

我們可以透過多種方式向 Java 程式傳遞命令列引數。各種 IDE 都支援在其執行配置中提供引數。此外,它們也很容易使用。當您執行程式碼時,可以在程式的配置檔案中設定引數,或在命令列中提供。

廣告