Javaプログラマになるための
定番Javaサイトの歩き方



きっとお世話になるサイト
「The Jakarta Project」
http://jakarta.apache.org/

 サーバサイドのJavaプログラムを経験した人ならば、Tomcatというアプリケーションサーバのことはよく知っているでしょう。Servlet/JSP Specification がリファレンス実装されたアプリケーションサーバです。TomcatはThe Apache Software FoundationのJava部門であるJakarta Projectによって開発されています。Tomcatの最新リリース情報、バグや脆弱性に関する情報やそれらの修正版などもJakarta Projectのサイトから取得することができます(画面3)。Jakarta ProjectはJavaに関する技術やアプリケーション開発を行っており、Javaの発展に大きく寄与している非営利団体です。その成果物はすべて無料、オープンソースで公開されています。

画面3 The Jakarta Projectサイト

 Jakarta Projectが提供しているのはTomcatだけではありません。現在活動しているサブプロジェクトには表1のものがあり、それらの技術に関する最新の情報はこのサイトから取得できます

表1 現在活動しているJakarta Projectのサブプロジェクト
Alexandria Ant Avalon BCEL
Cactus Commons ECS James
Jetspeed JMeter Log4J Lucene
ORO POI Regexp Slide
Struts Taglibs Tomcat Turbine
Velocity Watchdog

 その中から、特に代表的なサブプロジェクトを紹介しておきましょう。

  • Tomcat
    いわずとしれたServlet/JSPに対応したアプリケーションサーバです。ServletやJSPの勉強に使われることも多いですし、実際、これらを使って運用されている商用サイトも数多くあります。扱いやすいアプリケーションサーバです。Tomcatに関する情報源は、広くインターネット上で見つけることができますが、ここが総本山といえます。

  • Ant
    AntはJavaベースのビルドツールです。ビルドツールとしてはMakefileが有名ですが、Java関連におけるビルドツールとしては事実上このAntが標準となっています。特徴としてはXML形式でビルドルールを記述できるので書式が統一されており、独自の書式を持つものよりも分かりやすくなっています。またタスクと呼ばれる命令セットが用意されており(タスクは自分で定義することもでき、標準タスク以外にも拡張タスクが数多く作られています)、これらを組み合わせてさまざまな作業を自動化することができます。

  • Struts
    StrutsはJ2EEを用いたWebアプリケーションを作る際の、MVCアーキテクチャを中心としたフレームワークです。Javaに関連するフレームワークは商用、非商用を問わず数多く存在しますが、その中でもStrutsは「シンプルで分かりやすい」という特徴を持っています。またオープンソースですので、Strutsのソースコードを読むことができます。Strutsのコード自体も、設計やデザインパターンの適用方法などを学ぶうえで、よくできた教材といわれています。

  • Jetspeed
    Jetspeedは、ポータルサイトの構築を支援するフレームワークです。ポータルサイトには、ユーザーごとに専用のページを用意し、自由にカスタマイズできることが求められます。Jetspeedでは、ページを構成する1つ1つのコンテンツをPortletという単位で管理しており、これらの配置や操作などが簡単に行えるようになっています。また認証関連などポータルサイトに必要な機能を提供してくれます。

  • Cactus
    CactusはJUnitをベースとするサーバサイドJavaコードのユニットテストのためのシンプルなテストフレームワークです。サーブレットやEJB、タグライブラリ、Filterなどのテストを行うことができます。先に述べたAntを使った自動テストや、JBuilderなどIDEとの連携のためのドキュメントも用意されています。

  • Turbine
    TurbineはStrutsと同様のWebアプリケーションを作る際のフレームワークです。Strutsの特徴を「シンプル」と述べましたが、それに対してTurbineは非常に「リッチ」な機能を持ったフレームワークとなっています。Strutsに比べJMS、JNDI、JDBCなどを用いたアプリケーションを作る際の支援なども含まれています。Strutsはシンプルで使いやすいフレームワークですが、足りない機能をほかのもので補わなければなりません。Turbineは多機能でその分複雑ですが、Webアプリケーション開発に必要な機能の多くが含まれています。目的に合わせて選択することになります。

Jakarta Projectを日本語で読むには
「The Ja-Jakarta Project」
http://www.ingrid.org/jajakarta/

 Jakarta Projectはすべてのコンテンツが英語です。英語が苦手な方はトップページまで行って引き返してしまった、なんてことがあったかもしれませんね。

 The Ja-Jakarta Projectでは有志の方々が、Jakarta Projectのコンテンツを日本語に訳し公開することで普及を促進するとともに、Jakartaプロジェクトに対して日本からのフィードバックを行っています(画面4)

画面4 The Ja-Jakarta Projectサイト

 Jakarta Projectのサブプロジェクトのうち表2のものが翻訳されています。例えばTomcat 4.0のAPIドキュメントは、日本語化されたServlet 2.3/JSP 1.2のAPIドキュメントはSunなどからも公開されておらず、大変有用です。ただし、あくまでも本家Jakarta Projectのコンテンツを翻訳しているので、最新情報とは限らないことを意識しておくべきです。

表2 現在活動中のJa-Jakarta Projectのサブプロジェクト
Ant翻訳 Cactus翻訳 ECS翻訳 JMeter翻訳
Lucene翻訳 Log4J翻訳 ORO翻訳 Regexp翻訳
Servlet API翻訳 Struts翻訳 Taglibs翻訳 Tomcat翻訳
Velocity翻訳


これからのJava技術を知るために
「JCP(Java Community Process)
http://jcp.org

 最後に、次世代のJava技術に関する情報を得ることができるJCPのサイトを紹介します。JCPとはSunによって提唱されたJavaに関するさまざまな技術の仕様を決めたり、リファレンス実装を行ったりテストスイートの開発などを行う際のオープンな参加型プロセスのことです。つまり、今後Javaにどんな機能を追加していくか、どのように変えていくかということを特定の企業ではなくみんなで決めていこうという試みです。それらはJSRと呼ばれる、JCPにおいて新規の仕様の開発、または既存の仕様に対する改訂を提案する文書によって管理されています。

画面5 Java Community Processサイト

 例えば、JDK 1.4の仕様(JSR-86)や、Servlet 2.3/JSP 1.2仕様(JSR-53)など多くの技術がJCPによって規定されています。最近であれば、Webサービスに関するJSR(JSR-109)や、次世代のJ2EE 1.4仕様に関するJSR(JSR-151)などが検討されています。

 JCPとはどういったものなのか、といったドキュメントは日本語化されていますので、一度目を通しておきましょう。その後、JSRのリストを見ながら面白そうなJSRのサイトをのぞいてみましょう。

  Sun/Jakarta Project/JCPの3つのサイトと関連する日本語サイトを紹介しました。これらはJava技術のキーを握るとても重要なサイトです。

 見てきたようにJava関連では公開される最新の情報の多くが英語のため、一人前のJava技術者になるためには英文のドキュメントを読む習慣を付けておきましょう。

2/2  

Javaプログラマになるための
定番Javaサイトの歩き方





Page1
   何はなくともSunのJavaサイト「java.sun.com」
     Technologies[最新のJava技術を知りたい]
     Downloads[バイナリが欲しい]
     Documentation[仕様書や各種ドキュメントを探したい]
     Developer Services[技術情報が欲しい/Java技術を学びたい]
  英語の苦手な方はこちら 「Java Developer Connection日本語サイト」
     Java Developer Connection[日本語で技術を学びたい]
 
Page2
 
 きっとお世話になるサイト 「The Jakarta Project」
  Jakarta Projectを日本語で読むには 「The Ja-Jakarta Project」
  これからのJava技術を知るために 「JCP(Java Community Process) 」

 



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間