Javaプラットフォームと聞くと、各種OSやJVMなどが思い浮かぶかと思いますが、Javaアプリを動かすソフトウェアを総称して「Javaプラットフォーム」と呼んでいます。
本記事では、Javaプラットフォームの各種ソフトウェアの概要をJavaプログラミング学習中の初心者向けにご紹介していきたいと思います。
Javaプラットフォームの概要を知ろう
Javaプラットフォームは、Javaアプリを動かすソフトウェアの総称とご紹介しましたが、もう少し詳しく概要について確認していきましょう。
概要
Wikipediaの情報から引用すると、Javaプラットフォームとは下記のように定義されています。
Javaで記述されたプログラムの開発および実行を行うことのできるソフトウェア群の総称である。
引用元:Javaプラットフォーム(Wikipedia)
Javaは、Java Virtual Machine(JVM)上で動作するため、プラットフォームに依存しないというような説明は聞いたことがある方も多いかと思いますが、これらを実現しているソフトウェアを総称してJavaプラットフォームと呼んでいます。
ソフトウェア群
ではどういったソフトウェア群が、Javaプラットフォームに該当するのかをまずは一覧形式で確認しておきましょう。
- Java言語
- JVM
- Java SE
- Java ME
- Java EE
- JDK
- アプレット
- サーブレット
- Javaフレームワーク
- Java統合開発環境
Javaプラットフォームのソフトウェア群の役割を知ろう
Javaプラットフォームを構成するソフトウェア群について、各種ソフトウェアの役割や代表的なものをご紹介していきたいと思います。
Java言語
Java言語は、プログラミング言語の1つでサン・マイクロシステムズ社が開発し、現在はオラクルが開発を行っている言語です。
環境に依存せず、プログラムを動かせるため様々なアプリ開発で利用されています。
JVM
JVMは、Java Virtual Machineの略称で、Java仮想マシンと呼ばれるものです。
OSや端末に依存せずJavaアプリを実行出来るのは、このJVM上でJavaプログラムが動く仕組みだからです。
Java SE
Java SEは、Java Platform Standard Editionの略称で、JVMやAPIなどをまとめたパッケージのことを指しています。
主にデスクトップアプリケーション向けに利用されるのがJava SEです。
Java ME
Java MEは、Java Platform Micro Editionの略称で、モバイルアプリケーション向けのパッケージです。
携帯電話やBlu-rayプレイヤー・プリンターといった、モバイル端末の組み込みプログラムで利用されます。
Java EE
Java EEは、Java Platform Enterprise Editionの略称で、企業向けのWebアプリケーション用パッケージです。
Java SEにWebアプリケーション開発用のライブラリなどを追加しているため、基本的にJava SEの機能は全て利用することが出来ます。
JDK
JDKは、Java Development Kitの略称で、 Javaアプリを開発するために必要なソフトウェアをまとめたものです。
Javaのコンパイラやデバッガなどに加えて、Javaを実行するために必要なJRE(Java Runtime Enviroment)も含まれます。
アプレット
Javaアプレットは、WebブラウザにJavaプログラムを読み込ませて実行するアプリケーションです。
JDK9以降は非推奨の技術に認定されており、Java11以降は正式に廃止が決定しています。
サーブレット
サーブレットは、サーバーサイドで動かすJavaのプログラムを指しています。
動的Webページを作成するために利用される技術の1つで、クライアント側からの要求に応じてサーバー側のJavaプログラムが実行されます。
Javaフレームワーク
Javaアプリ開発では、基本的にフレームワークと呼ばれる作業を効率化させるためのプログラムの集まりを利用します。
フレームワークは様々な種類が提供されていますが、Java開発においてもほぼ必須と呼べるほど実務では利用されています。
Javaフレームワークの有名どころの概要について確認していきましょう。
Spring
近年のJava開発で主流となっているのが「Spring Framework」です。
Dependency Injection(DI)機能が備えられており、クラスの依存関係が解消出来ることから、プログラムの改修箇所を最低限に絞ることが出来るため開発効率化が実現出来ます。
Play Framework
Play Frameworkは、Rubyのデファクトスタンダートとなっている「Ruby on Rails」を元にしたJava用のフレームワークです。
「Don’t Repeat Yourself(DRY)」と「Convention over Configuration(CoC)」を基本方針として作成されています。
Play Frameworkでは、自動コンパイル機能が備わっている点も開発効率化が期待出来ます。
JSF
JSFは、JavaServer Facesの略称で、Java EEに標準搭載されているフレームワークです。
MVCと呼ばれるWebアプリケーション開発で頻繁に利用されるアーキテクチャが採用されており、作業の分担を容易に出来ることに加え、保守性も高くなるメリットがあります。
Struts
Spring Frameworkなどが登場する以前は、Javaフレームワークのデファクトスタンダードといえば「Struts」でした。
MVCアーキテクチャの先駆け的な存在で、数多くのJavaアプリで現在も利用されています。
ただ近年では、新規Javaアプリの開発でStrutsが採用されることはほとんどなくなっているようです。
Java統合開発環境
Java統合開発環境(IDE)は、開発に必要なソフトウェアをまとめたパッケージのことを指しています。
Javaアプリ開発では、IDEを利用するケースがほとんどですので、有名どころを抑えておきましょう。
Eclipse
Javaでのシステム開発といえば、Eclipseが真っ先に名前のあがるIDEです。
IBMが元々開発を進めていましたが、現在ではオープンソースプロジェクトとして運営されています。
プラグインが豊富に提供されており、自分好みの設定を作成しやすいIDEと言えます。
Android Studio
Androidアプリ開発用にGoogleが作成したIDEが、Android Studioです。
Androidアプリ開発専用のIDEとして提供されており、Android端末の仮想化機能などが標準で提供されています。
Webアプリケーションやデスクトップアプリケーションには利用出来ませんが、Androidアプリ開発であれば真っ先に検討されるIDEです。
さいごに: Javaプラットフォームのソフトウェア群を整理しよう
本記事では、Javaプラットフォームの概要からソフトウェア群それぞれの役割についてご紹介してきました。
Javaアプリを開発するには、様々なソフトウェアが利用されており、今回紹介したもの以外にもたくさんのソフトウェアが利用されます。
全てが必ず必要なわけではなく、アプリ開発の内容によって利用されるソフトウェアも異なりますので、少しずつ自分が利用するソフトウェアから順番に把握出来るよう学習していきましょう。