LoginSignup
2
3

More than 3 years have passed since last update.

【Java】jaee j2ee ってなんだ

Last updated at Posted at 2019-03-25

このページではJavaを触れていて、
私がしょっちゅうわからんくなった
ワードについて解説したいと思います。

具体的には下記

Java SE(J2SE)、Java EE(J2EE)、
Java ME(J2ME)、JRE、JDK(J2SDK)

1.JavaSE(J2SE)って?

正式名称はJava Platform, Standard Edition という名称とのことです。
(J2SEは過去の旧称らしいです)
Weblio辞書を見てみると

Java仮想マシンやJava APIなどの集合体のことである。主要なJava言語に関するパッケージが一通り含まれており、正式名称である「Java Platform, Standard Edition」よりはJ2SEやJava SEと表記されることが多い

なるほどわからん。

調べてみると
StandardEditionということなので
基本的なセット、 Javaを使用する際には必要な標準的な「セット」
と考えると良いとのことでした。

よくよく調べてみますとJVM(Java virtual Machine)は
この中に同梱されているようですね。
なのでJavaを使用するときには基本的に必須になるというセットと認識されると良いでしょう。

2.Java EE(J2EE)、って?

Java Enterprise Edition
エンタープライズ開発用(Enterprise Edition)
和訳するとこんな感じですね。

エンタープライズ=法人用という意味らしいですが、
企業用ということもあり、大規模開発向けのセットということですね。
ServletなどのWeb開発等でも使用できる
等もこの中に含まれているので
JavaSEと比較して、JavaSEはデスクトップ上で動かせるキットに対し、
JavaEEはWeb上でも動かせるので、より動かせる範囲の広いキットと思うと良いでしょう。

JavaSE=Webを使わない小規模なシステム開発向け
JavaEE=Webを使用しても開発が可能な大規模開発向け

3.Java ME(J2ME)

公式ページより引用

Java Platform, Micro Edition (Java ME) は、携帯電話、セットトップボックス、Blu-ray Disc プレーヤー、デジタルメディアデバイス、M2M モジュール、プリンタなど、モバイルおよび組み込みデバイス環境で実行するアプリケーションのための堅牢で柔軟な環境を提供します。
Java ME テクノロジーは、元来、小型デバイス向けのアプリケーションの構築に付随する制約に対処するために作成されました。この目的で、Oracle は Java ME テクノロジーの基礎をそのような制限環境に合わせて定義し、メモリ、ディスプレイ、電源容量の限られた小型デバイスで実行する Java アプリケーションを作成できるようにしています。

なるほど()

わかりやすくまとめると
・組み込みデバイス向けのEditionだよ
・小型デバイス向けのアプリケーションの構築に対処するために作ったよ
・組み込み系向けだよ。(大事なことなので二回)

要はC#、C++みたいな組み込み向けに作られたJavaということですね。
具体的に何が違うかはわかりません()

4.JRE、JDK(J2SDK)

はい。本題です。

JRE  正式名称は(Java Runtime Environment)
JVMと基本ライブラリーを主とした、Javaアプリケーションを実行するための環境です。

JDK 正式名称(Java Development Kit)で、
JREに、コンパイラー(javac)やアプリケーション開発に必要なツール(javadoc,jarほか多数)を加えたものです。

なるほど()状態なので一つ一つ分解しましょう。

「JREではJVMと基本ライブラリーを主としている」
JVM=先述したJava virtual machineですね。
これを動かすための基本的な実行環境ということになります。

じゃあ実行環境って?

プログラムの基本的な構造として、

ソースコードを書く>はい終わり!!!

じゃなくて、そのソースコードをまとめて動かしてくれる環境があって
初めてソースコードが動くわけです。

JREはそのまとめて動かしてくれる環境がしっかり入った「環境」と思うと良いでしょう。

次、JDK

JDK 正式名称(Java Development Kit)で、
JREに、コンパイラー(javac)やアプリケーション開発に必要なツール(javadoc,jarほか多数)を加えたものです。

はい、上に書いてある通り、JREにさらに開発しやすくなるようにいろいろ詰め込んだキット
ということになります。
コンパイラー=実はソースコードをPC(OS)でもわかるように翻訳して動かしてくれているのが
このコンパイラーになります。(コンパイル=翻訳)

まとめるとこんな感じ
ソースコード:人間語で書いたプログラムの元ネタ
バイナリコード:コンピュータさんが分かる言葉で書かれたプログラム
コンパイル:人間語(ソースコード)を機械語(バイナリコード)に変換する作業

その他、アプリケーション開発やら、私たちが日常的に使っているかどうかわかりませんが
関数等もJarの中に先駆者達が作ってくれたものが詰め込んであります。

時には感謝しつつ、時にはなんでこの機能入ってねえんだよと憤りつつ
でも感謝しながら使うようにしましょう。

まとめ
結局どういうことだってばよ?って人に。

Java SE(J2SE)Webを使わない小規模なシステム開発向けのエディションセット
Java EE(J2EE) Webを使用しても開発が可能な大規模開発向けエディションセット
Java ME(J2ME) MP3プレイヤーとか組み込み向けのセット
JRE      ソースコードを組んだ時に、まとめて動かしてくれる環境
JDK(J2SDK)  開発する際に開発しやすくなるようにいろいろ詰めてくれてるキット

料理にたとえるなら

Java SE(J2SE) 最低限の調理セット(包丁・まないた・フライパン)
Java EE(J2EE)  見せるようにいろいろ準備した調理セット(食器とか設備も良いの使ってる)
Java ME(J2ME) 調理ばさみとか特殊な場合に便利な調理器具
        (スクレイパーとか和菓子職人さんが使うはさみとか)
JRE      具材を混ぜたらはいできあがり!!!ってしてくれるセット
JDK(J2SDK)  調理をしやすくしてくれる細かな気配りができた設備・環境

急ぎ足件、ざっくりとしたまとめになってしまいますが、
以上となります。何らか参考になれば幸いです。

2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3