【Java入門】JavaSEとEEの違いやJRE・JDKを世界一分かりやすく解説

オータケ
書いた人 オータケ
侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

Javaを勉強しはじめた方にとっては

「SEとEEの違いがわからない」
「JREやJDKの違いがわからない」
「どういう場面で何を使えばいいの?」

といった声をお聞きします。

今回は、SEとEE、JREとJDKについて、これからJavaを学習しはじめる初心者の方にもわかるように解説します!

そもそもJavaとはどのようなものなのかを知りたい方はこちらの記事で確認してください。

JavaSEとJavaEE

JavaSEとは

JavaSE(Java Standard Edition)を一言で言うと「Javaの基本機能をまとめたもの」となります。

具体的にはJava言語でプログラミングを行う際に最低限必要な機能をまとめたものです。

アプリケーションを開発する場合は後述するJDKをインストールしておく必要があります。

JDKについてはこちらをチェック!

JavaSEは古いバージョン(5.0まで)では「Java 2 Platform Standard Edition(J2SE)」と呼ばれていました。

現在では「Java Standard Edition」が正式名称であり略称はJavaSEとなります。

JavaSEはどんなときに使うの?

JavaSEはパソコン上で動作するゲームや便利なソフトを作ることができます。

パソコンでの用途以外では携帯電話や家電に仮想マシン(VM)と呼ばれる仕組みが搭載されていればJava言語を使ってアプリケーションの開発を行うことができます。

最近で言えばandroidを搭載したスマートフォンのアプリを作る際にJava言語を使用するためには、このJavaSEの導入は必須となります。

現在の最新版

2018年6月現在の最新版は「Java SE 10」です。

Java SE 10のダウンロード

Java8や9の新機能についてはこちらの記事で詳しく解説しているので、ぜひ確認してください。

JavaEEとは

JavaEE(Java Enterprise Edition)「JavaSEを元にしてサーバーサイドの機能を追加したもの」です。

主にWebサイト(もしくはWebアプリケーション)を開発する際に用いられます。

JavaEEは簡単にいえば「JavaSE+拡張機能」といった構成になっています。

この拡張機能を使うことでJava言語でWebサイト(もしくはWebアプリケーション)を開発することができるようになります。

JavaEEの詳細についてはこちらの記事で詳しく解説しているので、ぜひ確認してください。

JavaEEは古いバージョン(5.0まで)ではJava 2 Platform Enterprise Edition(J2EE)と呼ばれていました。

現在では「Java Enterprise Edition」が正式名称であり略称はJavaEEとなります。

JavaEEはどんな時に使うの?

JavaEEの説明でWebサイト(もしくはWebアプリケーション)を開発する際に用いられると書きました。

では具体的にどのようなサイトで使うのでしょうか。

ユーザーがブラウザを使ってとあるサイトにアクセスしたとしてます。

Webサイトが置いてあるサーバーはユーザーからのアクセスに応じてWebサイトの情報をユーザーに送ります

この送る際に何か処理が必要な場合にJava EEの出番となります。

(もっと具体的な例を挙げれば会員登録や、ショッピングサイトのカートに入れる機能などの処理を作ることができます。)

余談ですがサーバーサイドのアプリケーション開発に用いられる言語としてJavaの他に「Ruby」や「PHP」等があります。

現在の最新版

2018年6月現在の最新版はJava EE 8です。

Java EEのダウンロード

JavaSEとJavaEEの違いは?

ここでJavaSEとJavaEEの違いを簡潔にまとめます。

  • JavaSEは「Javaの基本機能をまとめたもの」
  • JavaEEは「JavaSE+拡張機能」

と、このようになっており、「拡張機能があるかどうか」という違いになっています。

JREとJDK

JREとは

JRE(Java Runtime Environment)とは「Javaで作られたアプリケーションを動かすために必要なソフト」です。

Java言語で書かれたプログラムを動かすために必要なプログラムとなります。

パソコン上でJavaアプリを動かす場合に必須となるため皆さんも既にインストールしているのではないでしょうか。

パソコンでWebサイトなどを見ているとJava言語で書かれたプログラム(Javaアプレット)に出会うことがあります。

例えば下記のサイトもJavaアプレットで作られています。

将棋倶楽部24

こういったサイトを利用するにはJavaアプレットを動かすために必要なJREを先にインストールしておく必要があります。

JREはどんな時に必要なの?

上記でも解説したとおりJREをインストールすれば様々なサイトのJavaアプレットを動かすことができるでしょう。

このJREはJavaで書かれたプログラムを実行するのに必要であるため、Java言語を使ってプログラミングを行う開発者だけでなくユーザー側も必要となります。

JREをダウンロード

JDKとは

JDK(Java SE Development Kit)とは「Java言語でプログラムを組む際に必要なソフト(開発キット)」です。

つまり、一番最初に解説したJavaSEを使ってJava言語でプログラムを書く場合にはこのJDKが必須になります。

開発者向けに必要なキットになるためユーザー(Javaで作られたアプリを使用する側)はインストールする必要はありません。

JDK内にはJREも含まれています。

Javaでアプリを開発したい場合、JDKを入れれば開発を始めることが可能です。

ただしIDE(統合開発環境)と呼ばれるソフトをあわせて使うことでより開発しやすくなります。

統合開発環境を構築したい方はこちらの記事が参考になります↓

JavaのIDEといえば「NetBeans IDE」「Eclipse」が有名だと思います。

これらのソフトをインストールし効率の良いアプリケーション開発ができるといいですね!

JavaEEの場合はJDKは必要?

Java言語を使って開発するためJDKは必須です。

特にEclipse等のIDEと併用する場合は文法チェックといった機能を含めて使用するために、JDKを先にインストールしておかなければなりません。

開発を始める時はJDKをインストールしましょう。

JavaEEのJDKをダウンロード

JREとJDKの違いは?

JREとJDKの違いについてまとめていきます。

  • JREは「Javaで作られたアプリケーションを動かすために必要なソフト」
  • JDKは「Javaでプログラムを組む際に必要なソフト」

と違いは「アプリケーションまで動かすことができるかどうか」です。

また、JREはJDKに含まれています。

まとめ

いかがだったでしょうか。

簡単にまとめると、、

JavaSEとJavaEEの違いは「拡張機能があるかどうか」

JREとJDKの違いは「javaで構成されたアプリケーションを動かすことができるか」

という違いでした。

わかりづらいJavaの開発環境周りについてご理解いただけたのではないでしょうか?

少しでもJavaの開発環境周りの知見を増やす機会になれば嬉しいです。

Javaカリキュラム無料公開中!
この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーランスをされている市川友哉さん。33歳で、プログラミングを学び始め、4ヶ月という短い期間でフリーランスエンジニアとして独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java2

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

オータケ

オータケ

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。