

中嶋悟
名前:中嶋 悟(なかじま さとる) ニックネーム:サトルン 年齢:28歳 性別:男性 職業:会社員(IT系メーカー・マーケティング部門) 通勤場所:東京都千代田区・本社オフィス 通勤時間:片道約45分(電車+徒歩) 居住地:東京都杉並区・阿佐ヶ谷の1LDKマンション 出身地:神奈川県横浜市 身長:175cm 血液型:A型 誕生日:1997年5月12日 趣味:比較記事を書くこと、カメラ散歩、ガジェット収集、カフェ巡り、映画鑑賞(特に洋画)、料理(最近はスパイスカレー作りにハマり中) 性格:分析好き・好奇心旺盛・マイペース・几帳面だけど時々おおざっぱ・物事をとことん調べたくなるタイプ 1日(平日)のタイムスケジュール 6:30 起床。まずはコーヒーを淹れながらニュースとSNSチェック 7:00 朝食(自作のオートミールorトースト)、ブログの下書きや記事ネタ整理 8:00 出勤準備 8:30 電車で通勤(この間にポッドキャストやオーディオブックでインプット) 9:15 出社。午前は資料作成やメール返信 12:00 ランチはオフィス近くの定食屋かカフェ 13:00 午後は会議やマーケティング企画立案、データ分析 18:00 退社 19:00 帰宅途中にスーパー寄って買い物 19:30 夕食&YouTubeやNetflixでリラックスタイム 21:00 ブログ執筆や写真編集、次の記事の構成作成 23:00 読書(比較記事のネタ探しも兼ねる) 23:45 就寝準備 24:00 就寝
はじめに:JDKとJREの基本を押さえる
JDKとJREはJavaの世界でよく耳にする言葉ですが、意味と役割を混同している人も多いです。JDKはJava開発キットの略で、開発者がJavaプログラムを作るときに必要な道具一式を含みます。これにはコンパイラ、デバッガ、ドキュメント、サンプルコードなどが含まれ、Javaアプリを自分で作ったり修正したりするために必須です。反対にJREはJavaランタイム環境の略で、作られたアプリを実行するための最低限の要素だけを集めたものです。つまりJREは「実行するための箱」であり、JDKは「作るための箱」です。初心者の人が最初に混同するのは、両者ともJavaを扱えるという点ですが、役割が全く違うという現実です。
具体例で考えると、もしあなたが自分でJavaのアプリを作って実行テストを行いたい場合にはJDKをインストールします。JDKにはjavacというコンパイラが含まれていて、あなたが書いたコードを機械語に翻訳してくれます。実行だけを目的にするならJREだけでも動く場合がありますが、現代の開発環境では多くのツールがJDKを前提に設計されており、JREだけを選ぶケースは少なくなっています。
Javaは「プラットフォーム依存性が低い言語」であり、多くの異なるOSで同じ動作を期待できます。その裏にはJava仮想機械(JVM)が働いています。JDKとJREはこのJVMと密接に連携して動作します。開発者はJDKの中にあるツール群を使ってコードを作り、JREを使ってそのコードを実際の環境で動かします。重要なのは、実行環境と開発環境を分けて考えることで、別のPCやサーバーでの動作保証をより確実にできる点です。
最後に覚えておきたいのは、配布形態の違いです。Javaは長い間、JDKとJREを別々のパッケージとして提供してきましたが、近年はJDK自体がJREの機能を包含する形で配布されることが増えています。つまり「開発用と実行用を一つにまとめたパッケージ」が主流になる動きです。とはいえ用語の意味は変わりません。あなたが何をしたいのか—作るのか、動かすのか—を明確にすれば、適切なものを選べます。
実務での選択と使い分けの基準
実務ではプロジェクトの性質を見てJDKとJREを選ぶ必要があります。新規開発ならJDKを必須と考えるのが通例です。なぜならコンパイラやデバッグツールが揃っており、開発効率が上がるからです。運用のみを目標とする場合でも、ある程度のツールがJDKに含まれるためトラブルシュートの際に有利になることが多いです。
ただし、配布・運用の際には「実行環境を軽量に保つ」ためJREだけを採用する場面もあります。特にサーバー上で複数のアプリを動かす場合、JREだけをインストールしてJVMを共通化することでリソースを節約できます。ここでのポイントは、「用途に応じて最小限の構成を選ぶ」ことです。
また、近年の動向としては「開発用と実行用を分けない一体型パッケージ」が増え、JDK一つで作成→デプロイまでを賄えるケースが多くなってきました。しかし社内ポリシーや第三者の依存関係によっては、JREの特定バージョンを指定する必要があるため、必ずプロジェクトの要件を確認してください。
実務での使い分けの要点をまとめると、次のようになります。まず新規の開発案件ではJDKを選ぶ。次に既存のサーバー環境にはJREを適用して軽量化を図る。最後にバージョン管理と互換性の観点から、JDK/JREの組み合わせとパス設定を文書化しておく。これらを行えば、チーム全体の作業効率が改善され、トラブル時の対応も速くなります。
表:JDKとJREの主な違い
xx.x.x
xx.x.x
koneta: 放課後、友だちとプログラミングの話題になり、JDKとJREの違いをどう伝えるか悩みました。私はこう言いました。『JDKは開発者の道具箱、JREは実行するための道具箱だよ。作るならJDK、動かすだけならJREを使うのが基本。最近は一体型パッケージも増えたけど、役割の理解が最初の一歩。』