Comments
Description
Transcript
Linux での Java 開発環境のセットアップ
Application Development Tools Linux での Java 開発環境のセットアップ Robert Clevenger, Oracle Corporation 概要 多くの Java 開発者が、開発環境としての Windows を必要としていないことを認識し始めています。サーバーに限らず、 クライアントのオペレーティング・システムとして Linux を使用することができます。また、Linux の評判や Linux の採 用を検討する理由について、興味を持つ開発者もいます。理由が何であれ、Linux はサーバーや Java 開発者のデスクトッ プとしての有効な選択です。最近のデスクトップ環境の改善点として、KDE、GNOME、Star Office、Evolution などがあ ります。Sun の Java、オラクルの Oracle Developer Suite - Oracle JDeveloper およびその他の様々なオープン・ソース・プロ ジェクトとの組合せ以外に必要なことはありません。Linux によって、開発者にとって優れたデスクトップが実現します。 環境設定 最初に、Java での開発に必要なソフトウェアをインストールする必要があります。 Java のインストール Java が開発者とエンド・ユーザーに対して、WORA(Write Once Run Anywhere)の実現を保証した一方、Linux はオペレー ティング・システム市場を共有しました。このオープン・ソース・オペレーティング・システムは、Linus Torvalds 氏に よって作成され、1991 年 10 月 5 日に始まった GPL(GNU General Public License)でこの Usenet ニュースグループのポス トと共に配布されました。 Minix-1.1 の良き時代、人が人であり、独自のデバイス・ドライバを作成していた時代を恋しく思いますか? あなたは 優れたプロジェクトに飢え、自分のニーズを満たすために OS の修正を切望していませんか? すべてを Minix 上で機能 させることで、フラストレーションを感じていませんか? 優れたプログラムを作動させるために、徹夜をするのはもう 嫌ですか? もしそうであれば、このポストはあなたのためのものかも知れません。 1 ヶ月前に述べたように、私は Minix にそっくりの AT-386 向け無料バージョンを開発しています。このバージョンは、 既に使用可能な段階に達しており(目的によってはまだ使用できない場合もありますが)、ソースをより幅広く配布した いと思っています。今はまだバージョン 0.02 ですが、bash、gcc、gnu-make、gnu-sed、compress などを既に正 常に実行しています。 IDC によると、そのときから Linux ユーザー・ベースは 1000 万を超えるほどに成長し、OS は世界の IT 市場で最も急速 に成長するプラットフォームとなりました。主な理由は次のとおりです。まず、Linux で使用されるハードウェアは、通 常、独自の Unix オペレーティング・システムが必要とするハードウェアに比べ、安価で高速であることです。そして、 無料で使用できるハイパフォーマンス・オペレーティング・システムの Linux を、低コストハードウェアと Java との組 合せで、フレキシブル、高い信頼性、そして入手の容易なエンタープライズ向けインフラストラクチャが実現し、何千も の IT 企業が Linux へと移行しているのです。 このシリーズでは、Linux で Java クライアント・アプリケーションを作成、バージョニング、テストおよびパッケージン グするプロセスを説明します。このシリーズが終了する頃には、Java および Linux の補足的利点についての深い理解を得 ると共に、独自のアプリケーションの開発およびデプロイを開始できます。はじめに、最初のステップであるインストー ルについて説明します。 Linux での Java 開発環境のセットアップ 1 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved Application Development Tools Linux は、多くのハードウェア・プラットフォームでインストールできますが、ここでは最も一般的な x86 を取り上げま す。このプラットフォームでは、Blackdown、Sun、IBM および JRockit という 4 つの異なる Java 仮想マシンを使用でき ますが、ここでは基本的に Sun の Java VM を使用します。Sun の Java VM は、Linux 上で最も幅広く使用されている Java VM で、Linux 上の Oracle 製品でも使用されます。 ここでの例は、RedHat Linux 9 を使用して作成していますが、RedHat Enterprise Linux でも、同じ構文でなくても同様に使 用できます。 パッケージのフォーマットとインストール 最初に、Sun の Web サイト(http://java.sun.com/linux)で Java 2 Software Development Kit(J2SDK) for Linux の最新バー ジョンをダウンロードします。ファイル名はリリースごとに変わりますが、1.3.1 のファイル名は J2SDK の RPM(RedHat Package Manager)バージョンでは j2sdk- 1_3_1_08-linux-i586.rpm.bin、非 RPM パッケージバージョンでは j2sdk-1_3_1_08linux-i586.bin となります。 特別な理由がない限り、J2SDK の RPM バージョン、つまり filename j2sdk-1_3_1_08-linuxi586.rpm.bin をイ ンストールすることをお薦めします。RPM パッケージでは、インストールされたパッケージのリストをインストール、 アップグレード、削除、検索、依存関係の管理などができます。Windows インストーラのコマンド・バージョンのよう なものと考えてください(ただし、こちらでは大きな問題は発生しません)。RPM は、RedHat、United および Mandrake など、多くの Linux ディストリビューションで使用されるパッケージ・マネージャです。 また、非 RPM ダウンロードは単なる通常の tar ファイルです。このバージョンのインストールでは、中央のマニフェス トやデータベースが更新されないため、Java がインストールされたかどうかを手動で確認する必要があります。 J2SDK の新しいコピーを作成してインストールする前に、既にマシンにインストールされていないことを確認してくだ さい。インストールされている場合、どのようにインストールされたか判別できないため、3 つの事項を確認する必要が あります。これらは、Java がインストールされているかどうかを確認する最も一般的な方法です。 1. RPM データベースに「jdk」と付いたものが含まれているか。 2. Java が自分の PATH 内にあるか。 3. /usr/java ディレクトリにファイルが存在するか。これは、Java が通常インストールされるデフォルト・ディレク トリです。 4. 次の例に、これらのステップを示しています。この例から分かるように、インストールされたパッケージに「jdk」 というテキストは含まれていません。 # rpm -qa | grep jdk Linux での Java 開発環境のセットアップ 2 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved Application Development Tools ステップ 2 に進むと、このコマンドを呼び出すとエラー・メッセージが表示されるため、コマンド java は PATH 内には ないことが分かります。 # java -bash: java: command not found 次に、システムにディレクトリ/usr/java は存在しないことが示されます。 # ls -la /usr/java ls:/usr/java: No such file or directory これで、Java が現在インストールされていないことが確認できました。次に J2SDK をインストールします。 RPM としての Java のインストール RPM を使用した J2SDK のインストールには、インストール・オプションまたはアップグレード・オプションを使用しま す。パッケージの旧バージョンが存在してもインストールが行われるため、アップグレード・オプションをお薦めします。 他のオプションとして興味深いものに、verbose(インストール中、コンソールに詳細情報が表示される)やハッシュ(処 理過程バーが表示される)があります。また、「rpm-help」を実行すると、オプションの完全なリストを見ることもでき ます(他にも多くのオプションがあります)。 J2SDK をインストールする前に、(実行可能でない場合は)これを実行可能にしてから実行し、ライセンスに同意する 必要があります。次にこれらのステップを示します。 この bin ファイルを、(既に実行可能になっているか否かにかかわらず)実行可能にします。操作は非常に簡単です。 # chmod +x j2sdk-1_3_1_08-linux-i586.rpm.bin 次に、バイナリ・ファイルを実行すると、RPM が解凍されます。下の例で、次の事項に注意してください。 (snip)は、出力が大量にあり、簡潔にするために削除されたことを示します。>この例では、あなたが root です。 この例では、J2SDK の bin ファイルは root ユーザーのホーム・ディレクトリ(通常は/root)にあると想定しています。 bin ファイルの実行前にディレクトリを/usr/java に変更する必要があります。変更しない場合、手動で移動させる必要が あります。 Linux での Java 開発環境のセットアップ 3 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved Application Development Tools # mkdir /usr/java # cd /usr/java # $HOME/j2sdk-1_3_1_08-linux-i586.bin Sun Microsystems, Inc. Binary Code License Agreement (snip) Do you agree to the above license terms? [yes or no] yes Unpacking... Checksumming... 0 0 Extracting... UnZipSFX 5.40 of 28 November 1998, by Info-ZIP ([email protected]). UnZipSFX 5.40 of 28 November 1998, by Info-ZIP ([email protected]). creating: jdk1.3.1_08/ creating: jdk1.3.1_08/jre/ creating: jdk1.3.1_08/jre/bin/ (snip) これで完了です。 以上で RPM をインストールできます。次の例に、オプション U(新しいバージョンのアップグレードまたはインストー ル)、h(進行中にハッシュ・マークを表示)および v(verbose、多くの出力を表示)を示します。 # rpm -Uhv jdk-1.3.1_08.i586.rpm Preparing... ########################################### [100%] 1:jdk ########################################### [100%] 環境への Java の追加 自分の環境に Java を追加するためのデフォルトのメカニズムは、次のとおりです。 環境変数 JAVA_HOME を設定します。いくつかのアプリケーションでは、この設定を必須としていますが、実際はあま り使用すべきではありません。 $JAVA_HOME/bin で示されるディレクトリを PATH 環境変数に追加します。 RedHat Linux では、多くの異なるファイルを更新して、この結果を得ることができますが、新しいファイルを/etc/profile.d に追加することをお薦めします。これにより、システム上のすべてのユーザーの環境が変化します。 Linux での Java 開発環境のセットアップ 4 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved Application Development Tools 次に、/etc/profile.d に追加するいくつかのサンプル・ファイルを示します。その 1 つの java.sh は、bash をシェルとして使 用するユーザー向けのもので、もう 1 つの java.csh は、csh または tcsh をシェルとして使用するユーザー向けのものです。 これら 2 つのファイルを/etc/profile.d に置きます。これら 2 つのスクリプトで、ファイル/etc/javaversion が存在する場合は このファイルにバージョン番号(例えば 1.3.1)を含める必要があり、存在しない場合は/usr/java で見つかった最初の JDK が設定されます。 JAVA.SH # /etc/profile.d/java.sh - Sets Java Environment if [ -z "$JAVA_HOME" ]; then if [ -e /etc/javaversion ]; then javaver=`cat /etc/javaversion | head -1` fi if [ -z $javaver ]; then jdkpath=`ls -1 /usr/java/ | grep "$javaver" | head -1` if [ "X$jdkpath" == "X" ]; then jdkpath=`ls -1 /usr/java/ | head -1` fi else jdkpath=`ls -1 /usr/java/ | head -1` fi export JAVA_HOME=/usr/java/$jdkpath export PATH=${PATH}:${JAVA_HOME}/bin fi JAVA.CSH # /etc/profile.d/java.csh - Sets Java Environment if ( ! $?JAVA_HOME ) then if ( -e /etc/javaversion ) then set javaver = `cat /etc/javaversion | head -1 ` endif if ( $?javaver ) then set jdkpath = `ls -1 /usr/java/ | grep '$javaver' | head -1` if ( $jdkpath == '' ) then set jdkpath = `ls -1 /usr/java/ | head -1` endif else set jdkpath = `ls -1 /usr/java/ | head -1` endif setenv JAVA_HOME /usr/java/$jdkpath setenv PATH ${PATH}:${JAVA_HOME}/bin endif Linux での Java 開発環境のセットアップ 5 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved Application Development Tools これら 2 つのファイルが/etc/profile.d に配置されると、一旦ログアウトして再度ログインします。PATH 環境変数を確認 して、Java2 SDK へのパスが含まれていることを確認してください。さらに、java-version と入力して、Java2 SDK のバー ジョン情報を確認してください。 # echo $PATH /u01/app/oracle/product/9.2/bin:/usr/local/bin:/bin:/ usr/bin:/usr/X11R6/bin:/usr/java/jdk1.3.1_08/bin # java –version java version "1.3.1_08" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_08-b03) Java HotSpot(TM) Client VM (build 1.3.1_08-b03, mixed mode) SCM(Software Configuration Manager) 組織がさらに大規模な複雑で完全に統合されたソフトウェア・アプリケーションの構築に努めるほど、開発の管理作業も 増えます。開発者は、既存アプリケーションや他のプロジェクトと統合され、Internet スピードで機能するクオリティ・ ソフトウェアの製作が期待されています。開発環境にリリースされたソフトウェアのバージョン管理が失われると、膨大 なコストが発生し、機能しているソリューションにも影響を及ぼします。すべての変更事項や依存関係の連絡をとる必要 のあるグローバル開発チームでは、電子メールや文書ベースのコントロール・システムを超えた、さらに厳密なアプロー チが要求されます。 SCM(Software Configuration Manager)は、コードのバージョンへのアクセス権を持つものをコントロールし、リリース を作成するために相互機能する特定のバージョンを管理することで開発を助成します。開発ストリームの統合を組み合わ せた並行開発を許可することで、さらに管理性が得られます。バージョンおよび製品間の依存性管理も、開発するソフト ウェアのクオリティや信頼性向上につながります。Oracle SCM などの大規模エンタープライズ SCM ソフトウェアから CVS などの小規模なソリューションまで、様々な SCM オプションがあります。 CVS(Concurrent Versions System) CVS は、Concurrent Versions System の略で、SCM のバージョンの管理サイドです。CVS により、開発者は同じファイル を同時に修正し、開発者による変更の確定(確認)時に発生する競合を解決できます。 CVS は、Dick Grune によって UNIX シェル・スクリプトの集合として作成され、1986 年 12 月に USENET ニュースグルー プ comp.sources.unix にポストされました。これは、RSC(Revisions Control System)の上部の薄いラッパーで、UNIX と ほぼ同期間使用されています。現在 CVS には競合解消アルゴリズムのみが残っており、コードはありません。 Oracle JDeveloper による CVS のサポート IDE は、ソース・コードがファイル・システム内に単独で存在する場合、SCM リポジトリに含まれるソース・コードと も対話する必要があります。SCM ツールは、開発を補助するファイルへの変更履歴や履歴に関するコメントなどの豊富 なメタデータを提供します。現在のファイルと前のバージョン、あるいはそれ以前のバージョンとの違いを確認できるこ とは非常に有益です。CVS は多くの開発チームが選択する SCM ツールであり、Oracle JDeveloper でもサポートしていま す。CVS は必須要件ではありませんが、現在 SCM ツールを使用していない場合は、試す価値があります。 Linux での Java 開発環境のセットアップ 6 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved Application Development Tools 構築とテスト コードを安全に保ち、変更内容を把握する以外にも、論理エラーやその他のエラーからコードを守る必要があります。 強靭なビルド・システムを持つことで、再生可能なビルドの重要性が確立され、コードテストに最大の重点が置かれます。 Ant および JUnit は、これらのタスクを簡便化するためのツールです。 Ant のサポート Make ファイルと IDE は、これまで関わりはありませんでしたが、Oracle JDeveloper での Ant のサポートがその距離を縮 める架け橋となります。Ant のビルド・ファイルは、既存のプロジェクト・ファイルから作成できますし、あるいはプロ ジェクトを内部構築する際にプロジェクト・ファイルのかわりに、Ant ビルド・ファイルを使用するよう Oracle JDeveloper に指示することもできます。ここでの目標は、プロジェクト・ファイルとビルド・システムの同期を保つ時間を短縮する ことです。これは、ソフトウェア開発チームにとって非常に重要です。開発者のメンテナンス・コストを軽減することで、 コーディング、テストおよびリファクタリングなどのより生産的な作業により多くの時間を費やすことができます。 JUnit のサポート JUnit とは、フレームワークをテストするユニットおよびテスト・ハーネスです。JUnit テストを作成する開発者は、JUnit API を使用して、テストが合格か不合格かをプログラムによって判断します。このような開発者は、個々のテスト・ケー スやテスト・ケース・スイートに対して JUnit テスト・ランナーも使用します。Oracle JDeveloper には、テスト・ケース、 テスト・ケース・スイートおよびテスト設備を迅速に作成するウィザードが含まれます。テスト・スイートが作成される と、スイートを呼び出して JFC ランナーで結果を見たり、スイートを別の既存テスト・スイートに追加したりできます。 Linux での Java 開発環境のセットアップ 7 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved Application Development Tools Struts および他のオープン・ソース・プロジェクト Linux を使用する開発者として、他のオープン・ソース・プロジェクト(オペレーティング・システムを除く)を利用す ることもできます。Struts は、そのようなプロジェクトの 1 つで、Web ベースのアプリケーションを作成する Java 開発者 にとって興味深いものとなり得ます。また、他にも興味深いプロジェクトがあります。 Struts Struts は、Java Servlet、JavaServer Pages および JavaBeans などの標準テクノロジと統合する、Web アプリケーションを構 築するオープン・ソース・フレームワークです。Struts によって、Model-View-Controller(MVC)デザインパターンに従っ た Web アプリケーション開発が可能になります。これは、Craig McClanahan 氏によって「かゆい所に手が届く」ように 作成されました。Struts は、今までになかった領域のフレームワークを提供し、J2EE MVC フレームワークの事実上の標 準となりました。Struts は、J2EE Web Tier 開発に大きな影響を与えるのみでなく、完成すれば JSF(Java Server Faces)に 統合あるいは変形するでしょう。 SourceForge SourceForge は、Open Source の開発者が Open Source Projects をホスト、共有し、これに貢献するコラボレーティブな Web サイトです。Sourceforce は、誰もがブラウズや参加できる何万ものプロジェクトをホストしています。Java ベースの Open Source プロジェクトを見ると、CVS を含む最新のソースを得られることが分かります。また、通常、これらを構築に Ant が使用されています。ここで使用されている基本的な Open Source テクノロジにより、あらゆる Java Open Source プロジェ クトを仮想的に構築し、使用できます。また、SourceForge は、Open Source に参加するための有効な方法でもあります。 結論 新しいオペレーティング・システム(Linux)を使用して Open Source 開発に参加することは、開発者にとって興味深い ことです。新しいスキルを習得して有意義なものにするのみでなく、ソフトウェアに関する概念を変え、コミュニティの 感覚を掴むことができます。ぜひご参加ください。 Linux での Java 開発環境のセットアップ 8 Paper # 40257 Oracle Corporation 発行「SETTING UP YOUR JAVA DEVELOPMENT ENVIRONMENT ON LINUX」の翻訳版です。 Copyright © 2003 Oracle Corporation All rights reserved