初めの一歩…

[2003/11/29]

間違いだらけの Java…

コンパイルしてみよう

C言語風にこんなサンプルを作ってみた(Foo.java).
    void main(void)
    {
        println("Hello java\n");
    }
main関数だけだとコンパイルエラー
  % javac Foo.java
  Foo.java:2: 'class' または 'interface' がありません。
      void main(void)
      ^
  エラー 1 個

クラスで包んでみた.

class Foo {
    void main(void)
    {
        println("Hello java\n");
    }
}
関数引数が不正だとエラー
  Foo.java:2: 型の開始が不正です。
      void main(void)
                ^
  Foo.java:5:  がありません。
      }
       ^
  Foo.java:2: メソッド本体がないか、abstract として宣言されています。
      void main(void)
           ^
  エラー 3 個

関数引数をchar型配列にしてみた

class Foo {
    void main(char args[])
    {
        println("Hello java\n");
    }
}
呼出し関数が不正だとエラー
  Foo.java:4: シンボルを解釈処理できません。
  シンボル: メソッド println  (java.lang.String)
  位置    : Foo の クラス
          println("Hello java\n");
          ^
  エラー 1 個

println を System.out のメソッドとして明示した.

class Foo {
    void main(char args[])
    {
        System.out.println("Hello java\n");
    }
}
コンパイル成功!
  % javac Foo.java
  % 
ソースファイル Foo.java に加え,クラスファイル Foo.class が生成される.
  % ls Foo.*
  Foo.class       Foo.java

実行するぞ

関数型が合わないと呼び出せない(main関数が見つからない).

  % java Foo
  Exception in thread "main" java.lang.NoSuchMethodError: main

main関数に "public static" 属性を付加.

class Foo {
    public static void main(char args[])
    {
        System.out.println("Hello java\n");
    }
}
関数の引数型も合わないと呼び出せない.
  % java Foo
  Exception in thread "main" java.lang.NoSuchMethodError: main

引数はString型にする.

class Foo {
    public static void main(String args[])
    {
        System.out.println("Hello java\n");
    }
}
やっと実行できた….
  % java Foo
  Hello java

上へ