Java:Javaとは・環境構築
1学習の目的
- Javaがどんな言語かを理解し、自分のパソコンで実際に動かせる状態を作る。ここが最初の関門であり、多くの人が挫折する場所でもある。
- Javaの決まった書き方(おまじない部分)の意味を知る。なぜこんなに長いのかが分かると、丸暗記せずに書けるようになる。
2基礎解説
Javaは業務システムで最も使われている言語の1つです。銀行・保険・製造業の基幹システム、Androidアプリ、大規模Webサービス——安定性と長期運用が求められる場面で選ばれてきました。
| 特徴 | 内容 | 意味 |
|---|---|---|
| コンパイル型 | 実行前に変換が必要 | 間違いを実行前に発見 |
| 静的型付け | 変数の型を宣言する | 大規模でも壊れにくい |
| オブジェクト指向 | クラス中心の設計 | 部品として再利用しやすい |
| 実行環境 | JVM上で動く | OSを問わず同じ動作 |
- 必要なのは「JDK」(Java Development Kit)。JRE では開発できません——JREは実行専用で、コンパイラ(javac)が入っていない。ここを間違える人が非常に多い。
- おすすめは Eclipse Temurin(無料・商用利用可)。「Adoptium Temurin ダウンロード」で検索し、LTS版(現在はJava 21)を選ぶ。最新版より安定している。
- Windows:ダウンロードした .msi を実行。インストール中に「Set JAVA_HOME variable」「Add to PATH」に必ずチェックを入れる——これを忘れるとコマンドが動かない。
- Mac:.pkg を実行するだけ。PATHは自動で通る。Homebrewを使うなら brew install --cask temurin でも可。
- 確認方法:ターミナル(Windowsならコマンドプロンプト)で java -version と javac -version を実行。両方でバージョンが表示されれば成功。
- 'javac' は認識されていません → PATHが通っていない。Windowsならインストーラーをもう一度実行し、PATHのチェックを入れ直す。
- java は動くが javac が動かない → JREだけが入っている状態。JDKを入れ直す。
- コマンドプロンプトを開き直す。インストール直後は設定が反映されていないことがある。
実行方法:Main.java というファイルに書き、ターミナルで java Main.java と打つだけ。Java 11以降はコンパイルの手順を省略できます(学習中はこれで十分)。
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
// ▼ 各部分の意味
// public class Main … Main という名前のクラスを作る
// ファイル名は Main.java にする
// public static void main(String[] args)
// … プログラムの入口。ここから実行が始まる
// この1行は「決まった形」として覚えてよい
// System.out.println … 画面に出力して改行する
// 出力の種類
System.out.println("改行あり"); // 最後に改行
System.out.print("改行なし"); // 改行しない
// 文字列と数値をつなぐ
System.out.println("価格:" + 128000 + "円");
// コメント
// 1行コメント
/* 複数行の
コメント */
3基本ドリル(10問)
出力 == Hello, World!
public class Main { public static void main(String[] args) { ... } } の形で書く。
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}これがすべてのJavaプログラムの出発点。main メソッドから実行が始まるという決まりがある。
A. JRE B. JDK C. JVM D. どれでもよい 選択★☆☆無料
解答 == B
Development Kit(開発キット)の略。
B
JREには javac が入っていないので開発できない。「javaは動くのに javacが動かない」ときは、JREだけが入っている状態を疑う。
出力2行
System.out.println を2回書く。
public class Main {
public static void main(String[] args) {
System.out.println("1行目");
System.out.println("2行目");
}
}println は出力のあと改行する(print line の略)。改行したくないときは print を使う。
public class Main {
public static void main(String[] args) {
System.out.____("こんにちは");
}
}出力 == こんにちは
「1行出力する」を意味する7文字のメソッド名。
println
println の最後は「エル」ではなく小文字の「エヌ」。printIn(大文字のアイ)と書き間違えると cannot find symbol というエラーになる——初心者が最も多く踏む罠。
A. main B. Main C. 何でもよい D. Java 選択★☆☆無料
解答 == B
大文字小文字も含めて一致させる。
B
public class の名前とファイル名は一致させるのが決まり。Main.java なら public class Main と書く。
出力2行。改行なし / 改行あり
print は改行しない。println() で空の改行を入れられる。
public class Main {
public static void main(String[] args) {
System.out.print("改行");
System.out.print("なし");
System.out.println();
System.out.println("改行あり");
}
}print は改行しないので、続けて書くと同じ行に並ぶ。println() をカッコの中身なしで呼ぶと、改行だけを出力できる。
public class Main {
public static void ____(String[] args) {
System.out.println("開始");
}
}出力 == 開始
「主要な」を意味する4文字。プログラムの実行はここから始まる。
main
Javaは main メソッドを探して実行を始める。名前が違うと「メインクラスが見つかりません」というエラーになる。
A. 動く B. コンパイルエラー(';' expected) C. 警告だけ出る D. 空行が出る 選択★★☆広告解放
解答 == B
Javaは文の終わりにセミコロンが必須。
B
error: ';' expected と表示される。Javaは1文ごとにセミコロンが必要で、これを忘れると実行にすら進めない。
出力 == 価格:128000円
"価格:" + 128000 + "円" のように + でつなぐ。
public class Main {
public static void main(String[] args) {
System.out.println("価格:" + 128000 + "円");
}
}文字列と数値を + でつなぐと、数値が文字列に変換される。この性質は便利だが、計算と混ざると意外な結果になることもある(JV03で扱う)。
出力 == 本文のみ
// は1行、/* */ は複数行のコメント。
public class Main {
public static void main(String[] args) {
// ここから処理
/* 複数行の
コメントです */
System.out.println("本文のみ");
}
}コメントは実行されない。処理の意図を書き残しておくと、後から読む自分や他の人が理解しやすくなる。
4実践シナリオ(5問)
出力3行
println を3回使う。
public class Main {
public static void main(String[] args) {
System.out.println("山田太郎");
System.out.println("Javaを勉強中です");
System.out.println("よろしくお願いします");
}
}1行ずつ println を並べるのが基本。まずは動くものを書き、慣れてから効率的な書き方を覚えればよい。
出力 == 合計:384000円
"合計:" + (128000 * 3) + "円" のように書く。カッコに注意。
public class Main {
public static void main(String[] args) {
System.out.println("合計:" + (128000 * 3) + "円");
}
}掛け算をカッコで囲むのが重要。もし "合計:" + 128000 * 3 ならカッコ無しでも正しく計算されるが、足し算だと文字列連結になってしまう——次の問題で確認する。
出力2行。答え:300 / 答え:100200
カッコが無いと、左から順に文字列連結されてしまう。
public class Main {
public static void main(String[] args) {
System.out.println("答え:" + (100 + 200));
System.out.println("答え:" + 100 + 200);
}
}カッコが無いと 100200 になる。「答え:」と100が連結されて文字列になり、そこへ200がさらに連結されるため。計算は必ずカッコで囲むのが安全。
「=== レシート ===」
「ノートPC × 2」
「合計:256000円」 コーディング★★★広告解放
出力3行
すべて println でもよいが、print を使って組み立ててもよい。
public class Main {
public static void main(String[] args) {
System.out.println("=== レシート ===");
System.out.print("ノートPC");
System.out.println(" × 2");
System.out.println("合計:" + (128000 * 2) + "円");
}
}print と println は組み合わせて使える。複雑な行を部品に分けて組み立てたいときに便利。
出力 == 税込:140800円
Math.round(128000 * 1.1) で四捨五入できる。
public class Main {
public static void main(String[] args) {
System.out.println("税込:" + Math.round(128000 * 1.1) + "円");
}
}Math.round は四捨五入するメソッド。128000 * 1.1 は小数になるため、そのまま出力すると 140800.00000000003 のような値が出てしまう。
5仕上げ課題
クラス名:Main(ファイル名は Main.java)
出力する内容(6行)
=== ゼロカラ商店 ===
ノートPC 128000円 × 2
マウス 3200円 × 3
------------------
小計:265600円
税込:292160円
条件
・小計は 128000 * 2 + 3200 * 3 を計算式として書く(答えを直接書かない)
・税込は小計の1.1倍を Math.round で四捨五入
・計算部分は必ずカッコで囲む
・プログラムの先頭に「注文明細を出力する」というコメントを入れる 総合★★★広告解放
出力6行が完全一致
文字列と計算を + でつなぐとき、計算式は必ずカッコで囲む。Math.round(小計 * 1.1) で税込価格を求める。小計は 256000 + 9600 = 265600。
public class Main {
public static void main(String[] args) {
// 注文明細を出力する
System.out.println("=== ゼロカラ商店 ===");
System.out.println("ノートPC 128000円 × 2");
System.out.println("マウス 3200円 × 3");
System.out.println("------------------");
System.out.println("小計:" + (128000 * 2 + 3200 * 3) + "円");
System.out.println("税込:" + Math.round((128000 * 2 + 3200 * 3) * 1.1) + "円");
}
}環境構築を終え、最初のプログラムが動いた。ここまで来れば、Javaの入口は突破できている。
public class Main と public static void main(String[] args)——この2行は、正直なところ今の段階では「決まった形」として覚えてしまってよい。それぞれの単語の意味(public、static、void、String[])は、JV08以降のクラスやメソッドの章で自然に理解できるようになる。意味が分からないまま丸暗記するのは気持ち悪いかもしれないが、先に手を動かしたほうが習得は早い。
この課題で最も重要なのは計算式をカッコで囲むことだ。もし "小計:" + 128000 * 2 + 3200 * 3 + "円" と書いたらどうなるか。掛け算は先に計算されるが、その後は左から順に文字列連結が進み、「小計:2560009600円」という奇妙な出力になる。文字列と数値が混ざる場面では、意図した計算がされているか常に疑う——これはJava特有ではなく、多くの言語に共通する注意点だ。
そして Math.round。265600 * 1.1 をそのまま出力すると 292160.00000000006 のような値になる。これはコンピュータが小数を正確に表せないという根本的な性質によるもので、金額を扱うときは必ず意識する必要がある(JV02で詳しく扱う)。
次章では変数と型を学ぶ。今回は数値を直接書いたが、名前を付けて保存することで、プログラムは一気に読みやすく・変更しやすくなる。