MENU

【Java Silver】コマンドラインでのJavaプログラムのコンパイルと実行

今日もJava学習を頑張りましょう!

問題

次のJavaプログラムを、コマンドラインから正しくコンパイル・実行するにはどうすればよいでしょうか?以下の解答から選択してください。

public class Greeter {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
        

選択肢

  • A. javac Greeter    java Greeter.class
  • B. javac Greeter.java    java Greeter
  • C. java Greeter.java
  • D. javac Greeter.class    java Greeter

答えと解説

回答を見る

答え

B. javac Greeter.java    java Greeter

解説

基本説明:

Javaプログラムを実行するには、最初にソースコードをコンパイルする必要があります。javacコマンドはJavaコンパイラを起動し、.javaファイルを.classファイルに変換します。これによりJava仮想マシン(JVM)で実行可能なバイトコードに変換されます。そしてjavaコマンドを使用して、バイトコードをロードして実行します。このコマンドはファイル拡張子を指定せず、クラス名を入力します。

誤答理由:

  • A. javac Greeterでは拡張子が必要ですし、java Greeter.classでは拡張子を指定してはならない。
  • C. java Greeter.javaは、ソースファイルを直接実行する間違ったコマンドです。
  • D. javacはソースファイル(.java)を指定してコンパイルするため、.classファイルをコンパイル対象に指定できません。

つまずきポイント:

初心者は、しばしばjavacjavaの違いを混同しがちです。そして.javaファイルが直接実行されると思ってしまう場合もあります。この違いを理解することが大切です。

発展知識:

Javaプログラムの実行にはJVMが必須であり、JVMはオペレーティングシステム上でJavaプログラムを動かす仮想的な機械として機能します。そして、.classファイルの中に入っているバイトコードは、このJVM上でのみ正しく実行されることになります。これはJavaが「一度書けばどこでも動く」という仕組みを支える重要な要因です。

目次