1. 序章

引数を使用してコマンドラインからアプリケーションを実行することは非常に一般的です。 特にサーバー側で。 通常、アプリケーションがすべての実行で同じことを実行することは望ましくありません。何らかの方法でその動作を構成する必要があります。

この短いチュートリアルでは、Javaでコマンドライン引数を処理する方法について説明します。

2. Javaでのコマンドライン引数へのアクセス

main メソッドはJavaアプリケーションのエントリポイントであるため、JVMはコマンドライン引数を引数に渡します。

従来の方法は、String配列を使用することです。

public static void main(String[] args) {
    // handle arguments
}

ただし、Java 5では、羊の服の配列であるvarargsが導入されました。 したがって、mainStringvarargで定義できます。

public static void main(String... args) {
    // handle arguments
}

それらは同一であるため、どちらを選択するかは完全に個人の好みと好みに依存します。

メインメソッドのメソッドパラメータには、実行時に渡したのと同じ順序でコマンドライン引数が含まれています。取得した引数の量にアクセスする場合は、の長さを確認するだけです。アレイの

たとえば、引数の数とその値を標準出力に出力できます。

public static void main(String[] args) {
    System.out.println("Argument count: " + args.length);
    for (int i = 0; i < args.length; i++) {
        System.out.println("Argument " + i + ": " + args[i]);
    }
}

一部の言語では、最初の引数がアプリケーションの名前になることに注意してください。 一方、Javaでは、この配列には引数のみが含まれます。

3. コマンドライン引数を渡す方法

コマンドライン引数を処理するアプリケーションができたので、ぜひ試してみてください。 私たちが持っているオプションを見てみましょう。

3.1. コマンドライン

最も明白な方法はコマンドラインです。 mainメソッドを含むクラスcom.baeldung.commandlinearguments.CliExampleをすでにコンパイルしていると仮定します。

次に、次のコマンドで実行できます。

java com.baeldung.commandlinearguments.CliExample

次の出力が生成されます。

Argument count: 0

これで、クラス名の後に引数を渡すことができます。

java com.baeldung.commandlinearguments.CliExample Hello World!

そして、出力は次のとおりです。

Argument count: 2
Argument 0: Hello
Argument 1: World!

通常、アプリケーションは .class ファイルの束としてではなく、jarファイルとして公開します。 たとえば、 cli-example.jar にパッケージ化し、com.baeldung.commandlinearguments.CliExampleをメインクラスとして設定したとします。

これで、次の方法で引数なしで実行できます。

java -jar cli-example.jar

または引数付き:

java -jar cli-example.jar Hello World!
Argument count: 2 
Argument 0: Hello 
Argument 1: World!

Javaは、クラス名またはjarファイル名の後に渡すすべての引数をアプリケーションの引数として扱うことに注意してください。 したがって、その前に渡すものはすべて、JVM自体の引数です。

3.2. Eclipse

アプリケーションの作業中に、アプリケーションが希望どおりに機能するかどうかを確認する必要があります。

Eclipseでは、実行構成を使用してアプリケーションを実行できます。 たとえば、実行構成は、使用するJVM、エントリポイント、クラスパスなどを定義します。 そしてもちろん、コマンドライン引数を指定することもできます。

適切な実行構成を作成する最も簡単な方法は、 main メソッドを右クリックし、コンテキストメニューから実行>Javaアプリケーションを選択することです。

これにより、プロジェクト設定を尊重する設定でアプリケーションを即座に実行できます。

引数を指定するには、その実行構成を編集する必要があります。 実行>構成の実行…メニューオプションを使用して実行できます。 ここで、引数タブをクリックし、プログラム引数テキストボックスに入力する必要があります。

Run を押すと、アプリケーションが実行され、入力した引数が渡されます。

3.3. IntelliJ

IntelliJは、同様のプロセスを使用してアプリケーションを実行します。 これらのオプションを単に構成と呼びます。

まず、 main メソッドを右クリックして、 Run’CliExample.main()’:を選択する必要があります。

これによりプログラムが実行されますが、さらに構成するためにRunリストにも追加されます。

したがって、引数を構成するには、実行>構成の編集…を選択し、プログラム引数テキストボックスを編集する必要があります。

その後、[OK]をクリックして、たとえばツールバーの[実行]ボタンを使用してアプリケーションを再実行する必要があります。

3.4. NetBeans

NetBeansは、実行プロセスと構成プロセスとも一致します。

まず、 main メソッドを右クリックし、 Run File:を選択してアプリケーションを実行する必要があります。

以前と同様に、これにより実行構成が作成され、プログラムが実行されます。

次に、その実行構成で引数を構成する必要があります。 これを行うには、実行>プロジェクト構成の設定>カスタマイズ…を選択します。次に、左側の実行を選択し、引数テキストフィールドに入力します。

その後、[OK]をクリックしてアプリケーションを起動する必要があります。

4. サードパーティのライブラリ

単純なシナリオでは、コマンドライン引数の手動処理は簡単です。 ただし、要件がますます複雑になるにつれて、コードも複雑になります。 したがって、複数のコマンドラインオプションを使用してアプリケーションを作成する場合は、サードパーティのライブラリを使用する方が簡単です。

幸いなことに、ほとんどのユースケースをサポートするライブラリは多数あります。 2つの人気のある例は、PicocliSpringShellです。

5. 結論

アプリケーションの動作を構成可能にすることは常に良い考えです。 この記事では、コマンドライン引数を使用してこれを行う方法を説明しました。 さらに、これらの引数を渡すためのさまざまな方法についても説明しました。

いつものように、例はGitHubから入手できます。