ターミナルでのJavaプログラムの実行方法

Javaコマンドラインから実行するやり方がわからなかったのでメモしとく。今さらになってのJava感。。。笑

まず、以下のようにTest.javaというファイルを作ります。

// Test.java
public class Test {
  public static void main(String[] args) {
    System.out.print("hello, java's world!");
  }
}

1つのファイルが1つのクラスに対応していて、このTest.Javaというファイル名はクラスの名前と対応してるのでファイル名もきちんと意識しないといけないみたいだ。Javaさん。

そしたらそいつをコンパイルします。

$ javac Test.java

すると、Test.classというクラスを定義した形のファイルが出力されます。この中身をみたらなんかすごいことになっていたので、これがJavaバイトコードというやつなのかと解釈した。要するにJava仮想マシン機械語かな?

そしてこれを実行

$ java Test

ここは拡張子がいらない。

以下のように出力されればおk

▶ java Test
hello, java's world!%

これだとCみたいな完全コンパイル型の言語と何も変わらないように感じる。Javaコンパイル型なのか?インタプリタじゃないのか?そしてJava仮想マシンはいつ立ち上がってるの?など疑問は尽きない。。。