public static void main(String[] args)
はJavaを実行するのに、必須のメソッドです。
構文はひとつでも間違えるとエラーになり、実行できません。
ひとつひとつに意味があるためです。
Hello.java
class Hello{
public static void main(String[] args) {
System.out.println("Hello World");
}
}
各項目の意味は、以下の通りです。
項目 | 意味 |
---|---|
public | どこからでも参照可能 |
static | インスタンス可(new)しなくても外部から使用可能 |
void | 戻り値なし |
main | メソッド名 |
String[] | 引数をString型の配列で受け取る |
args | 引数名、argument(和訳:引数)の複数形でargumentsの略省 |
argsについて
String[] argsは、プログラム起動時に指定する値(コマンドライン引数)です。
引数名argsは、慣習的にargsが使われていますが、別の名前でも使用できます。
慣習的にargsが使われている理由は、JavaはC言語の後継であり、C言語の慣習をそのまま受け継いでいるためです。
C言語ので使われている引数名
- argv(argument vector(引数の配列))
- argc(argument count(引数の個数))
引数の動作確認
Hello.java
class Hello{
public static void main(String[] args) {
System.out.println(args[0]);
}
}
- 実行結果
$ java Hello "Hello world"
Hello world
- argsをsampleに代える
Hello.java
class Hello{
public static void main(String[] sample) {
System.out.println(sample[0]);
}
}
- 実行結果
$ java Hello "Hello world"
Hello world
構文を誤った場合
構文を誤った場合は以下のような実行結果になります。
$ java Hello "Hello world"
エラー: メイン・メソッドがクラスHelloで見つかりません。次のようにメイン・メソッドを定義してください。
public static void main(String[] args)
誤った構文例
- 引数をString型の配列以外にした場合
Hello.java
class Hello{
public static void main(Integer[] sample) {
System.out.println(sample[0]);
}
}
引数がString型である理由は、コマンドラインから受け取る値は、人間が入力する文字であり、それは文字列であるという思想から