今回の記事ではJavaのコマンドライン引数について徹底的に解説していきます。
実際のプログラムを書いて説明しているので、初心者の方でもわかりやすい内容となっています。
この記事を読むことで
- コマンドライン引数ってなに?
- コマンドでJavaを実行するときにコマンドライン引数を渡す方法
- IntelliJ IDEAでコマンドライン引数を渡す方法
を理解することができます!ぜひ最後まで読んでいってください!
挫折せずにプログラミングを学ぶために必要なこと
僕はプログラミングで挫折した経験があります。
それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。
Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。
次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。
申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
>>Freeksの無料カウンセリングはこちら
Javaのコマンドライン引数とは?
まずはJavaのコマンドライン引数がなんなのか?ということについて解説していきます。
Javaにおけるコマンドライン引数は、プログラムが実行される際にコマンドラインから渡されるパラメータのことです。
Javaでプログラムを開始するとmainメソッドが実行されます。
そのmainメソッドは次のように記述されます。
public static void main(String[] args)
このmainメソッドの引数である「String[] args」に渡すものがコマンドライン引数です。
コマンドライン引数はString型の配列として渡されます。
Javaでコマンドライン引数を使ってみる
実際にコマンドライン引数を使ったプログラムを書いてみましょう。
次のプログラムはコマンドライン引数を1つ受け取って、その値を出力する処理を記述したものです。
public class Test {
public static void main(String[] args) {
System.out.println("コマンドライン引数を受け取る");
System.out.println("コマンドライン引数 = " + args[0]);
}
}
Test.javaをコンパイルして、実行してみます。
javac Test.java
実行する際にクラス名の後に半角スペースを開けて、コマンドライン引数を渡します。
java Test CommandArg
実行結果は次のようになります。
コマンドライン引数を受け取る
コマンドライン引数 = CommandArgs
コマンドライン引数を複数設定する
先ほどの例ではコマンドライン引数を1つ渡しました。
しかしコマンドライン引数は配列を受け取るので、複数指定することができます。
複数指定する場合には次のように半角スペースを入れることで複数指定することができます。
java クラス名 引数1 引数2 引数3 ...
実際のコードで確認してみましょう。
次のコードはコマンドライン引数を2つのコマンドライン引数を受け取り、コンソールに出力します。
public class Test {
public static void main(String[] args) {
System.out.println("コマンドライン引数を受け取る");
System.out.println("コマンドライン引数1 = " + args[0]);
System.out.println("コマンドライン引数2 = " + args[1]);
}
}
上記のプログラムに複数コマンドライン引数を渡して実行してみると次のような結果になります。
java Test Comannd Args
実行結果
コマンドライン引数を受け取る
コマンドライン引数1 = Comannd
コマンドライン引数2 = Args
Javaでコマンドライン引数を使う際の注意点と対策
Javaでコマンドライン引数を使う際には注意点もあります。
例えば、コマンドライン引数が2つ入力されること前提のプログラムに対して、0か1つのコマンドライン引数しか渡されなかった場合には例外が発生します。
先ほどのプログラムにコマンドライン引数を1つだけ渡して実行してみます。
public class Test {
public static void main(String[] args) {
System.out.println("コマンドライン引数を受け取る");
System.out.println("コマンドライン引数1 = " + args[0]);
System.out.println("コマンドライン引数2 = " + args[1]);
}
}
java Test Comannd
実行結果でArrayIndexOutOfBoundsExceptionが発生します。
コマンドライン引数を受け取る
コマンドライン引数1 = Comannd
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at Test.main(Test.java:5)
このような例外を発生させないために2つの対処法を紹介します。
コマンドライン引数の長さを確認する
まずはコマンドライン引数の配列の長さが、期待している長さと同じかどうか比較する方法です。
先ほどのプログラムにif文を追加して、コマンドライン引数の長さを確認しています。
public class Test {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("コマンドライン引数を2つ指定してくだ>さい。");
return;
}
System.out.println("コマンドライン引数を受け取る");
System.out.println("コマンドライン引数1 = " + args[0]);
System.out.println("コマンドライン引数2 = " + args[1]);
}
}
実行時にコマンドライン引数が2つではなかった場合、メッセージが表示されてプログラムが終了します。
% java Test Comannd
コマンドライン引数を2つ指定してください
for文を使ってコマンドライン引数を使う
次はfor文を使って、対処する方法について解説します。
for文を使うことであらゆる長さのコマンドライン引数に対応できます。
public class Test {
public static void main(String[] args) {
for (String arg: args) {
System.out.println(arg);
}
}
}
コマンドライン引数を渡すと、順番に表示してくれます。
% java Test Command Line Args
Command
Line
Args
IntelliJ IDEAでコマンドライン引数を設定
最後にIntelliJ IDEAでコマンドライン引数を設定する方法を紹介します。
まずはIntelliJ IDEAでコマンドライン引数を出力するプログラムを書きます。
public class Main {
public static void main(String[] args) {
// コマンドライン引数を出力
for (String arg: args) {
System.out.println(arg);
}
}
}
画面上の「実行」→「実行構成の編集...」を選択します。
「プログラムの引数」となっているところに、コマンドライン引数として渡したい値を入力して「OK」を押します。
実行すると結果が表示されます。
Hello
World!
挫折せずにプログラミングを学ぶためには?
僕はプログラミングで挫折した経験があります。
エラーの連続やエラーが解消しても思った通りに動かないといったことが原因で、プログラミングが嫌いでした。
「プログラミングって全然意味わからないし、全然楽しくない」そう思っていました。
原因は当時周りに聞ける人が誰もいなかったからです。
プログラミング学習をしていく上で周りに聞ける環境というのはとても大切です。
周りに聞ける人なんていない
そんな人におすすめなのが月額10,780円で現役エンジニアに質問できる、プログラミングスクールのFreeksです。
多くのプログラミングスクールが数十万円払って通うところを月額10,780円から通うことができるのはコスパが良いです。
しかもサブスク制で、自分のペースで学ぶことができ嫌になったらすぐにやめることができます。
「周りに誰も聞ける人がいなくて、エラーが解決できない」「プログラミング全然楽しくない」という方は、無料カウンセリングを受けてみて下さい。
【関連記事】Freeks評判、口コミ
まとめ
今回はJavaのコマンドライン引数について解説してきました。
Javaではmainメソッドを実行する際に引数を渡すことができます。
コマンドライン引数を渡す方法として、コマンドから渡す方法・IntelliJ IDEAを使って渡す方法について解説してきました!
この記事があなたのプログラミング学習に役立ってくれれば幸いです。