お役立ち情報

Java EEとは?エンジニアじゃなくてもわかるSE用語解説

JAVA EEとは?

Java EE(じゃば いーいー)とは?

PaythonやRubyの昨今の勢いにおされて、多少人気が落ちたかのように見えるJavaですが、まだまだJavaは強く支持されているプログラミング言語です。

その人気の理由には、比較的早い実行速度や高い安全性、中間プラットフォーム(Windows、AppleどちらのOSでも開発可能)を持つがゆえの使い勝手の良さなどがあります。

Javaでの開発に着手した事のある方なら、「Java EE」という言葉を一度は聞かれたことがあるでしょう。「Java EE」とは「Java Platform, Enterprise Edition」の略称です。Javaで企業向けのWebアプリケーションを開発するときに必要な機能のことです。

そんな「Java EE」ですが、2018年2月に「Jakarta EE」に名称変更されています。その背景には、Javaを開発したSun Microsystemsという会社が、その後Orackleに買収されたことがあります。

「J2EE」という名称を聞かれたことがあるかもしれませんが、これはかつてのJava EEの呼び方です。バージョン4までこの名称が使われ、バージョン5からJava EEに変わっています。バージョン9からは「Jakarta EE」に名称変更されているというわけです。

JAVAプログラミングする画面

Java EEとJava SEの違いとは?

Java EEは前述の通り、企業向けのWebアプリケーションが開発できるプラットフォームなので、サーバーサイド起動などが追加されています。

対して「Java SE」(Java Platform, Standard Edition)があるのですが、聞かれたことはあるでしょうか。Java EEの中にはJava SEも含まれており、Java EEで開発を行うときにはJava SEのライブラリを使っています。

分かりやすくいえば、「Java SE」はJavaの基本的な機能を持ち合わせたもので、「Java EE」はそこにサーバーサイド機能を追加したものだということです。

サーチマン佐藤のJava」というサイトに、Java開発者が初めにインストールするべき「Java基本セット」について、とても詳しく図解されていましたので引用します。

< Java基本セット>

JAVAの基本

出典: サーチマン佐藤のJava

上記の図には、Javaの基本セットJDK(Java Development Kit)と呼ばれるソフトウェア開発キットのコンポーネントが記されています。JDK(Java Development Kit)には、コンパイラの他にJRE(Java Runtime Environment)というJavaを動かすために必要なパッケージが含まれており、Java SEはその中の一つです。

Java EEは、高級API群に分類されており、Java EEの他にはJava MEがあります。両社とも、企業向けWebアプリケーション開発や家電、スマホ開発などを行う場合にプラグイン(追加)して使う機能です。

Java EEの使用例

Java EEにはライブラリーが追加されていますが、この「ライブラリー」を簡単にいうとAPIの集まりです。では「API」とは何でしょうか?これは「Application Programming Interface」の略であり、簡単に説明すると、プログラムやソフトウェアで共有可能なものといえるでしょう。

Java EEに追加されているライブラリーには、具体的にはどんなものがあるのでしょうか。「コトバンク」にまとめてありましたので引用します。

企業の業務システムや電子商取引などで使われるサーバーには、さまざまな機能が必要になる。Java EEはそうした規模のシステム構築に必要な機能をまとめたものといえる。
たとえば
■アプリケーションを開発するためのアプリケーション・プログラミングインターフェース(API)セット「Platform Specification」
■プログラムを部品化した実行環境「Enterprise JavaBeans」
テスト環境「Blue Prints」
■ウェブページにJavaプログラムを埋め込み動的な内容生成を可能にする「Java Server Pages」(JSP)
■サーバー上でさまざまなソフトウェアを組み立てるためのXML対応API
などが含まれる。

出典: コトバンク

前述したように比較的実行速度が早く、安全性も高いJavaは多くのWebアプリケーションに使用されています。Webアプリケーション開発には、障害などで途中で止まったりしない、安定性の高いプログラミング言語Javaが、高い信頼性のもとに多く採用されているわけです。例えば「Twitter」「Evernote」などが、Javaで開発されているWebアプリケーションです。

Java EEを絶賛している記事をあるブログで見つけたので、引用します。

Java EEではなく、旧来のServletベースのプログラミングに心惹かれる叩き上げの人たちも、日本ではまだ大勢いるようです。確かに、あんなものをJava EEに置き換えるとなると、完全に作り変えになるので、移行には困難がともないます。
それでも、これから作るものはぜひJava EEベースになるといいなぁと思います。Java EEなら大量のウェブプログラマを一挙に育成できそうです。Java標準で、わかりやすく、生産性が高い、それがJava EEの特徴ですから。

出典: いくつものJava

以上のように、「Java Servlet」(サーバー側の処理を担う)と「Java アプレット」(クライアント側の処理を担う)を用いたWebアプリ開発に対して、Java EEはプログラマーよりの使い勝手のいいプラットフォームであるということで絶賛されているようです。

もっとプログラミングを身近に

Javaを動かすために必要なもの

Javaを動かすために必要なプロセスですが、まず初心者がJava開発を始めるとしたら、次の4つをインストールする必要があります。これらは、Windows にもLinux にも、もちろんAppleにもインストールされていません。

  • ソースコード
  • API
  • コンパイラ
  • Java VM(Java Virtual Machine)

書けるかどうかは別として、ソースコードが必要なのは明らかです。
しかし、他の3つは初心者には分かりづらいので説明していきます。

API

Java SE、Java EE、Java MEらをAPIと呼びますが、これらはAPIといって、いわゆる関数群とのことです。関数と言い換えてもしっくりこない場合は、ツールと見なすようにとも書かれています。

関数を持つのは何もJavaだけではなく、他の言語にも関数はあります。大抵の言語は、その言語をインストールして実行環境をつくると、一緒に丸ごと関数がついてくるのです。

しかし、Javaには関数が死ぬほどいっぱいあるとのことです。そのため標準的なJavaの実行環境を作っても、全部の関数が揃っているわけではないのです。ですので、必要に応じてインストールしなければなりません。

Java SE、Java EE、Java MEはそのようなAPI(関数群)の代表例です。それぞれを詳しく説明します。

Java SE:Javaを使うための最も基本的なAPI。

JDKに含まれる
これが無いと始まらない

Java EE:ちょっと高級なAPIとのこと(高級API群に含まれる)

必要であればインストールする必要あり
サーブレットなど、Web上で動く関数

Java ME:これも高級なAPI(高級API群に含まれる)

家電や携帯端末開発時に組み込まれるもの
※覚えておかれたら良いのですが、APIは、Javaの世界では「jarファイル」とも呼ばれるそうです。

コンパイラ(コンパイル)

ソースコードと実行環境があってもまだJavaは動きません。ソースコードを、実行できるファイル形式に変換する必要があるのですが、その作業を「コンパイル」といい、そのツールを「コンパイラ」といいます。

Java VM

Javaを動かすためにはソースコードも必要ですが、その前提としてJavaの実行ツールが必要です。これを「Java VM」(Java Virtual Machine)といいます。または、実行環境と呼びます。

この「Java VM」も、WindowsやLinux、もちろんAppleにも標準でインストールされていません。

まとめ

どの言語も開発環境や実行環境を構築したり、機能をプラグインするまでが大変ですが、Javaの場合は特に面倒くさいといわれています。

しかし初めの関門を突破すれば、後は学習領域に没頭できます。まだまだ人気の言語なので、是非習得していきましょう!

キャリアカウンセリングのプロとして
あなたに合った案件をご案内します。

まずはお気軽にお問い合わせください!

イメージ