Windowsのコマンドライン、Linuxのシェルコマンドでは、多くのコマンドは引数を受け取ります。
例えば、ファイルをコピーするためには、コピー元のファイル名、コピー先のファイル名を渡します。
もちろん、Javaアプリケーションでも引数を受け取ることができます。
アプリケーションを起動する際に、ファイルコピーコマンド等と同じように引数を受けて、アプリケーションでこの引数の値を使うことができます。
コマンドライン引数(mainメソッドの引数)を使うサンプル
1 2 3 4 5 6 7 8 9 10 11 | public class MainTest { public static void main(String[] args) { if(args != null && args.length != 3) { System.out.println("引数の数が違います"); return ; } System.out.println("引数1つ目(args[0]):" + args[0]); System.out.println("引数2つ目(args[1]):" + args[1]); System.out.println("引数3つ目(args[2]):" + args[2]); } } |
実行結果
・引数を3つ(hogehoge、fugafuga、foo)指定した場合
1 2 3 | 引数1つ目(args[0]):hogehoge 引数2つ目(args[1]):fugafuga 引数3つ目(args[2]):foo |
※実行例:「java MainTest hogehoge fugafuga foo」
・引数が3つではない場合
1 | 引数の数が違います |
※実行例:「java MainTest」
サンプルの解説
コマンドラインからの引数は、mainメソッドの引数に格納されています。
これを利用することで、コマンドラインから値を受け取ることができます。
mainメソッドの引数はString配列です。
コマンドラインで記載した半角スペース区切りの引数は、この配列に順番に格納されています。
例えば、「java MainTest param1 param2 param3」のような形でアプリケーションを起動すると、mainメソッドのString配列には、配列の0番目にparam1、配列の1番目にparam2、配列の2番目にparam3が、順に格納されます。
引数は、アプリケーションを使うユーザーが入力することになるため、数が不足したり、間違えたりします。受け取った引数の数や内容は、必ずチェックするようにしましょう。