この回の到達点は、プログラムを自分で実行し、ソースコード・コンパイル・実行環境の違いを説明できることです。前提知識はありません。本講座ではJava 21の機能を基準にします。最新版という意味ではなく、教材を再現するための基準です。
コードが動くまで
ソースコードは人が読む設計図です。javacというコンパイラが型や文法を検査して、JVMが扱うバイトコードへ変換します。javaコマンドがJVMを起動し、そのコードを実行します。JDKにはこの開発用の道具が含まれます。JavaとJavaScriptは別の言語です。
JDK 21以降を用意し、ターミナルで java --version と javac --version を実行してください。両方が見つかり、対応する版であることを確認します。見つからない場合は、インストール場所とPATHを確認します。IDEの実行ボタンを使う場合も、使用するJDKを確認しましょう。
最初のプログラム
作業用フォルダに、UTF-8で Main.java を保存します。公開クラス名とファイル名は大文字・小文字も含めて一致させます。
public class Main {
public static void main(String[] args) {
String name = args.length == 0 ? "読者" : args[0];
System.out.println("こんにちは、" + name + "さん");
System.out.println("今日の学習時間: " + (15 + 10) + "分");
}
}
そのフォルダで javac -encoding UTF-8 Main.java、続けて java Main を実行します。出力は「こんにちは、読者さん」と「今日の学習時間: 25分」です。java Main 花子 なら名前が変わります。実行時には .class を付けません。小さな単一ファイルなら java Main.java でも実行できます。
mainは実行の入口です。argsはコマンドラインから受け取った文字列の配列で、lengthは要素数です。条件式の疑問符は、条件が成り立つ場合と成り立たない場合の値を選びます。細部は後の回で扱います。
エラーは三種類に分ける
セミコロンの不足などはコンパイルエラーです。コンパイルは通るが実行中に失敗するものは実行時エラーです。動くが答えが違うものは論理エラーです。エラーメッセージを全部暗記する必要はありません。まず最初のエラーのファイル名と行番号を確認します。
練習と解答
練習:学習時間を二日分表示し、合計を35分にしてください。その後、セミコロンを一つ消して、どの段階で失敗するか確認します。
解答例:計算部分を (15 + 20) に変えれば35分です。セミコロンを消した場合は通常javacで失敗し、新しい実行ファイルはできません。古いclassファイルだけが実行できても、修正が成功した証拠にはなりません。
卒業チェック:編集、保存、コンパイル、実行を自分の言葉で区別できれば次へ進みます。
公式資料
Javaの開始ガイドを、環境構築時の参照先にしてください。