サーバサイドJavaを始めるには?


今や「Java」といえば「サーバサイド」という時代です。Javaは、一般的なアプリケーションの作成などもできるのですが、実際に多くのJavaプログラマが関わっているのは「サーバ側で動くJavaプログラム」です。そこで、これからサーバサイドJavaを始めようと思う多くの人のための連載を開始することにしました。

まず、「サーバサイドJavaとはどういうものか」ということから説明しましょう。普通のJavaとサーバサイドJavaは何がどう違うのでしょうか。簡単に整理しておきましょう。

●サーバサイドJavaは、Webサーバ内で動くプログラムです。といっても、Webのサーバプログラムの中と言うことではありません。通常は(Webサーバとは別の)Javaサーバと呼ばれるJavaプログラムを動かす専用サーバを用意し、これで動くプログラムをJavaで作ります。

●サーバサイドJavaのプログラムは、基本的に「Webサイト開発の一部」として作られる、と考えてよいでしょう。Webブラウザでサイトにアクセスし、さまざまなサービスを提供するものです。

●一般的なJavaプログラムは「J2SE(Java2 Standard Edition)」と呼ばれるエディションで作成をしますが、サーバ用には「J2EE(Java2 Enterprise Edition)」と呼ばれるエディションが用意されています。(ただし、後述しますがこれがなくともサーバ開発は行えます)

●サーバサイドの開発は、基本的に「GUIがないプログラム」です。というと語弊がありますが、AWTやSwingのようなものを使い、ウインドウやメニューを使ったプログラムを作ることはありません。唯一、GUIと呼べるのは、Webブラウザで表示するHTMLによるページだけです。

 ざっと見ればわかるように、サーバサイドのJavaプログラムは、一般的なJavaアプリケーションとはかなり違います。Javaのプログラムを動かすサーバを起動し、Webブラウザからそのサーバにアクセスして、そこにあるプログラムが呼び出され処理される――そういう感じで動くのですね。したがって、いわゆる「mainメソッドから始まるプログラム」とは、作り方も動かし方もまったく違うのです。

サーバサイドの開発に必要なもの


では、サーバサイドJavaを始めよう!と思ったとき、どういうものが必要になるでしょうか。何が揃えば、始めることができるのでしょう。必要なものをざっと整理しておきましょう。

●Javaサーバ・プログラム
これはもっとも広く使われているTomcatサーバの画面。こうしたサーバプログラムが必須になる。

もっとも重要となるのがこれです。これは、オープンソースで無償配布されているものから、製品として販売されているものまでいろいろとあります。サーバサイドの学習用としてもっとも広く使われているのは、Apache Groupによるオープンソースのサーバ「Tomcat」でしょう。また、J2EEに標準で組み込まれ無償配布されている、Sun Microsystemsの「Sun Java Application Server PE」も無償で利用できるサーバとして使われています。

●J2SEの基礎知識
Javaサーバなどよりも、実はこれがもっとも大切なことかもしれません。サーバサイドJavaを始めるには、なによりも「普通のJavaを一通り使えるだけの知識と技術」が必要です。最近では、まったくJavaを知らない人がいきなりサーバサイドでJavaを勉強し始めるケースが増えているようですが、これは正直、かなり大変でしょう。

●J2SE Developer Kit
いわゆる「JDK」として皆さん、既にインストールしているはずですね。Javaの開発をするならこれは必須です。サーバサイド開発用にはJ2EEというのもありますが、これはとりあえずいりません。なぜかというと、このJ2EEというのは、実は「J2SEとまったく同じもの」だからです。

サーバ開発用に配布されているJ2EEは、通常のJ2SEに、サーバ用に作成された各種のライブラリやドキュメント、サーバプログラムなどをつけたものなのです。したがって、必要なライブラリなどさえ用意すれば、J2SEでサーバサイドの開発は行えるのです。わざわざJ2SEとは別にJ2EEをインストールする必要などありません。

●開発環境
オープンソースの開発環境NetBeansの画面。こうした開発環境は1つ用意しておきたい。

とりあえず「ちょっと試してみる」という程度なら、テキストエディタでソースコードを書いてできるのですが、ある程度本格的にやってみようと思うのならば、Web開発に対応した開発環境は用意しておいたほうがよいでしょう。

もっとも広く使われいてる「Eclipse」、同じくオープンソースの「NetBeans」などの他、最近では製品だったものを無償配布しているものも出てきています。これらは、基本的にすべてサーバサイドの開発に対応していると考えてよいでしょう。