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

18/10/14 12:37:58     19/04/27 19:32:19

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 EEのSDK

Java EEには二種類のSDKがあります。そもそもSDKって何?と思われた方もいるかもしれません。SDKとは、Software Development Kitの略でソフトウェア開発キットです。要するに、Java EEにに含まれている開発環境、サンプルコード、資料、などなど開発に必要なものをひっくるめてSDKと呼んでいます。

Web Profileについて

Java EEのSDKのうちの一つがWeb Profileです。上でJava EEには二種類のSDKがあると説明しましたが、もう一つはフルプラットフォームプロファイル(通常版)です。

つまり、通常版に対して簡単になっているのがWeb Profileになります。通常版から特定のAPIのみ抜き出して軽量化しているので、簡易的な開発ならWeb Profileの方が通常版よりも向いています。

ちなみにAPIはApplication Programming Interfaceの略で、アプリケーションをプログラミングで作るためのインターフェース、規格です。Java EEとそこに記述するプログラムの連結部分と考えるとわかりやすいでしょう。

アルファベットの用語が多くてやや混乱したかもしれませんが、Web ProfileはJava EEの簡易的なバージョンだと知っておけば問題ないかと思います。

Glassfishについて

GlassfishはJava EEのSDKに含まれているアプリケーションサーバーです。実際にコードを書いて作ったアプリを動かす土台ということです。動かすだけでなく、開発やテストにも使えます。

Java EEで使用するIDE(総合開発環境)

Java EEだけがあればJavaの開発ができるわけではなく、ほとんどの場合IDEを使用します。またアルファベット三文字で混乱しますが、開発環境のことです。

「Eclipse」「NetBeans」「IntelliJ IDEA」といった選択肢があり、日本の開発現場だとEclipseかNetBeansを使用するケースが多いと思います。なぜここでIDEの話題を出したかというと、SDKと混同しないためです。

Javaは開発に便利な環境やツールが充実していますが、その反面どれを使えば良いのか迷ったり、それぞれのツールの役割がよくわからない、結果的に組み合わせがわからないという状況に陥りがちです。

特にJDKとIDEの違いがわからないという質問はネット上でも多いので、ざっくりとでも良いのでぜひ違いを押さえておいてください。

まとめ

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

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

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する