Javaの探求インデックス

別紙1.1 環境構築

 テキスト/バイナリ・エディタ、Java開発キット、コマンド環境、統合開発環境、パフォーマンス計測ツール、バージョン管理ツール、テスト・ツールなど、Javaプログラム開発に関するさまざまなツールについて、リンク先、設定方法をまとめます。


目次

§1 テキスト・エディタ

 プログラム(ソースコード)を編集するエディタには、プログラミングのための記述を支援するさまざまな機能があります。例えば、文法にのっとったインデントを自動的に行う機能、文法のキーワード、コメント、変数などに自動で色づけをする機能、先頭数文字を入力したら残りを補完する機能、コンパイラを呼び出す機能、コンパイル・エラー箇所へジャンプする機能、メソッド名などから定義箇所へジャンプする機能、などなどです。

 プロフェッショナルは、よい仕事をするためによい道具を選びます。プロフェッショナルなプログラマとしてどのような道具を選ぶのでしょうか。

 筆者がJavaプログラム編集用のテキスト・エディタとして欲しい機能は、

Emacsエディタ

 プロフェッショナルの道具として代表格の一つに挙げられるのがEmacsエディタです。次で紹介するVimエディタと並んでUNIX系OS上ではプログラム編集用エディタの双璧をなします。また、Windows OS上でもEmacsの移植版ツールが利用できます。

 Emacsエディタは標準でもJavaソースコードの編集モードを持っていますが、アドインでJavaの開発用Emacs LispパッケージJDEEを追加するとより高機能なJava編集機能を利用できるようになります。

Solaris 10 x86

 Solaris 10 x86では、"Solaris 10 6/06 OS Companion Software DVD"の中にEmacs 21.3.1が含まれています。Solarisのデスクトップ上での日本語入力、表示ができます。

Windows 2000/XP/Vista/7

 NTEmacsまたはMeadowが利用できます。日本語情報としてはMeadowが多いので、Meadowの利用がよいでしょう。NetInstall版を使うとインストールが簡単ですし、Emacs用のJava開発用拡張パッケージ(JDEE)も同時にインストールすることができます。

Linux系

 各種ディストリビューションがありますが、大抵はEmacsエディタが含まれています。ちなみにCentOS 4.4には、Emacs 21.3.1が含まれていました。

Viエディタ(Vim)

 独特のキーバインド(モード)を持つため、好みが分かれるところですが、手に馴染むと強力な道具となります。UNIX系OSではほぼ必ずインストールされているので、UNIX系OSの管理をする人はViが使えないと仕事にならない程です。
 ただし、標準のViエディタはプログラム(ソースコード)編集機能が貧弱なので、プログラム編集用には機能が拡張されたVimを使用します。また、Windows OS上でもVimの移植版ツールが利用できます。

NetBeans

 SunがスポンサーとなっているオープンソースコミュニティNetBeans.orgで開発されているソフトウェア開発用ツールです。主としてJavaの統合開発環境(IDE)。邪道ですがエディタとして使ってもよいかと。

 簡単な解説を以下ページに記載しています。

Eclipse

 IBMがスポンサーとなっているオープンソースコミュニティEclipse Foundationで開発されているソフトウェア開発用ツールです。主としてJavaの統合開発環境(IDE)。邪道ですがエディタとして使ってもよいかと。

Windows 2000/XP/Vista/7

eclipseのダウンロードサイトに行き、以下のファイルをダウンロードします。

圧縮解凍ツール等でインストールディレクトリ下に解凍します。

展開した中にあるeclipse.exeを実行します。

2007年9月末時点では日本語化パックはリリースされていません。有志でEclipseの日本語化をしているプロジェクト"pleiades"を入手します。

その他

 筆者はEmacsかViしか使わないので、その他のエディタは自ら使うことがありません。そのため、ここではその他として十把一絡げに簡単に列挙するに留めます。

Windows 2000/XP/Vista/7

§2 Java開発キット(JDK)

 Java開発キット(JDK)には、Javaコンパイラ、Java仮想マシン、JNI用コマンド、JavaDocツール、Javaデコンパイラ、デバッガ、その他さまざまなツールが含まれています。

Sun Microsystems Java SE Development Kit(JDK)

 Sun Microsystems社(現Oracle社)からリリースされているJDKは、基本はコマンド環境で使用するツールの集まりです。なお、同社からは、開発関係のツールを除いたJava実行環境だけで構成したJava Runtime Environment(JRE)も出ているので要注意です。

 今回、本資料ではJava SE 6(一部Java SE 7)を使用します。
 2006年12月12日現在、JDK 6正式版がリリースされています。[Downloads]タブをクリックし、"JDK 6 Update 21注1(JDK or JRE)"の右側にある[Download JDK]ボタンをクリックすると、Java SE Downloadsページが表示されます。Platform:欄で実行するマシンのOSを選択し、[Download >>]ボタンを押します。
「Log In for Download(Optional)」ダイアログが表示され、Sun Online Accountを入力する欄がありますが、一番したのSkip this Stepをクリックしてアカウントなしにダウンロードすることができます。
 2011年7月に、JDK 7正式版がリリースされました。

注1
2013年5月4日現在、Java SE 6は無償での保守(バグ/セキュリティ脆弱性の修正、その他のアップデート対応)期間を終えており、Update45を最後に以後は有償の契約での対応となっています。

Solaris 10 x86

 Sun Microsystems社のOSだけあって、JDKが標準で搭載されています。Solaris 10 x86 9/10版では、Java SE 6が含まれています。また、OSのパッチとしてJDKのアップデートが提供される仕組みになっています。もちろん別途JDKをダウンロードしインストールすることもできます。

 Solaris用のJDKダウンロードでは、2つのインストール種類のどちらかを選びます。単にファイルを展開するだけのself-extractingと、Solarisパッケージ管理機構と2つの種類があります。パッケージ管理機構だとアンインストールができるのですが、JDKの場合、単にディレクトリごと削除すればよいので、あまりパッケージ管理機構の恩恵はないと考えます。そこで、下記のself-extracting版をダウンロードします。

 このファイルをshellで実行すると、実行した際のカレントディレクトリ下にJDK(jdk1.6.0)が展開されます。

 環境変数PATHに、このJDKディレクトリ下のbinを追加すれば、以降JDKの各コマンドが実行できるようになります。

$ PATH=/opt/java/jdk1.6.0/bin:$PATH
$ 
パッケージ管理版のインストール

 参考までに、Solarisパッケージ管理版のJDKのインストールを紹介します。

$ zcat xf jdk-6-solaris-i586.tar.Z | tar xf -
$ ls
LICENSE          README_zh_CN.html  SUNWj6dmo    SUNWj6rt
README.html      SUNWj6cfg          SUNWj6jmp    THIRDPARTYLICENSEREADME.txt
README_ja.html   SUNWj6dev          SUNWj6man    
$ su
# pkgadd -d . SUNWj6rt SUNWj6dev SUNWj6cfg SUNWj6man SUNWj6dmo SUNWj6jmp
    :
#
パッケージ管理版のアンインストール
# pkgrm SUNWj6jmp SUNWj6dmo SUNWj6man SUNWj6cfg SUNWj6dev SUNWj6rm
#

Windows 2000/XP/Vista/7(Java SE 7)

 PC製品によってはSun Microsystems社のJREがプレインストールされているものもあります。しかし、開発に必要なのはJDKなので、JDKをダウンロードしインストールします。32bit OS用と64bit OS用と両方提供されています。64bit OSを使用している場合でも、開発・実行対象プログラムが32bit版ということもあり得るので、64bit OSの人も両方入手・インストールしておくとよいかと思います。

 OS種類 入手するファイル名 
 32bit jdk-7u21-windows-i586.exe
jkd-7u21-windows-i586-demos.zip
 64bit jdk-7u21-windows-x64.exe
jdk-7u21-windows-x64-demos.zip

 最初のexeファイルを実行すると、インストーラが起動します。インストール途中でインストール先ディレクトリを変更する機会があります。

 インストールが完了した時点で、java コマンドだけは実行可能となっています。

 環境変数PATHに、インストール先のJDKディレクトリ下のbinを追加すれば、以降JDKの各コマンドが実行できるようになります。詳しい環境設定方法は、後述の§3 コマンドライン環境で解説します。

C:\> PATH=C:\Program Files\Java\jdk1.6.0\bin;%PATH%
C:\>
レジストリ

JDKをインストールすると、以下のレジストリに設定情報が書かれていました。

キー: \\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft
          +-- Java Development Kit
          |     +-- 1.7
          |     +-- 1.7.0_21
          +-- Java Plug-in
          |     +-- 10.21.2
          +-- Java Runtime Environment
          |     +-- 1.7
          |     +-- 1.7.0_21
          +-- Java Web Start
          |     +-- 1.0.1
          |     +-- 1.0.1_02
          |     +--   :
          |     +-- 1.2.0_01
          |     +-- 10.21.2
          +-- Prefs

キー Java Development Kit の名前 CurrentVersion に、1.7 のようなバージョン番号が設定されています。
キー Java Development Kit\1.7 の名前 JavaHome に、C:\Program Files\Java\jdk1.7.0_21 のようにJDKをインストールしたパスが記載されています。
複数バージョンのJDKをインストールすると、キー Java Development Kit の下に、1.7、1.7.0のようなバージョン番号のキーが存在し、それぞれの名前 JavaHome にJDKのバージョンのパスが記載されています。

また、64bit OSに、32bit版JDKをインストールすると、キーの位置が少し異なります。

\\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft の下に、Java Development Kit 等のキーが展開されます。

Linux系

 Linux用のJDKダウンロードには、2つのインストール種類があります。ファイルを展開するだけのself-extractinigと、RPMパッケージ形式です。

 このファイルを実行すると、ターミナルにライセンス文が表示され、確認入力後インストールが開始されます。インストール先は、/usr/javaの下となります。

# sh jdk-6-linux-i586-rpm.bin
Pre-Release Software Evaluation Agreement

SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE
THE JAVA SE DEVELOPMENT KIT (JDK), VERSION 6
PRE-RELEASE SOFTWARE TO LICENSEE ONLY UPON THE       
  :(中略)
Do you agree to the above license terms? [yes or no] 
yes
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
  inflating: jdk-6-rc-linux-i586.rpm
Preparing...                ########################################### [100%]
   1:jdk                    警告: /etc/.java/.systemPrefs/.system.lock created 
as /etc/.java/.systemPrefs/.system.lock.rpmnew
警告: /etc/.java/.systemPrefs/.systemRootModFile created as /etc/.java/.systemPrefs/.systemRootModFile.rpmnew
########################################### [100%]
Unpacking JAR files...
        rt.jar...
        jsse.jar...
        charsets.jar...
        tools.jar...
        localedata.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...

Done.    
# ls -l /usr/java
lrwxrwxrwx   1 root root   16 12月 11 08:00 default -> /usr/java/latest
drwxr-xr-x  10 root root 4096 12月 11 07:59 jdk1.6.0
lrwxrwxrwx   1 root root   18 12月 11 08:00 latest -> /usr/java/jdk1.6.0
#

 環境変数PATHに、このJDKディレクトリ下のbinを追加すれば、以降JDKの各コマンドが実行できるようになります。

$ PATH=/usr/java/jdk1.6.0/bin:$PATH
$ 

Java SE 6 Documentation

 ドキュメント一式です。主要機能の技術ガイド、クラスライブラリAPIのJavaDoc文書、コマンドの解説などが含まれています。JDKと同じくダウンロードできます。

 任意の場所に展開します。一例として、<JDKインストールディレクトリ>\jdk1.6.0\の下がよいでしょう。

§3 コマンドライン環境

Windows 2000/XP/Vista/7

 Windows OSの標準コマンドライン環境は、従来からのコマンドプロンプト、およびWindows7から標準搭載されたPowerShellの2種類があります。PowerShellは、XP、Vista用をマイクロソフトから別途ダウンロードして使用することも可能です。

 また、Unix環境をエミュレートするCygwinがあり、これを入れるとUnixのシェル環境が利用できるようになります。

レジストリを検索して環境設定するコマンドプロンプト用バッチファイル

 複数のバージョンのJDKをインストールしていたり、バージョンアップ毎にディレクトリ名が変わり環境設定を変更するのは手間です。そこで、コマンドプロンプト用にレジストリからパスを検索して設定するバッチファイルを用意しておくと便利です。

カレントバージョンのJDK用環境設定バッチファイル

以下に、レジストリ(\\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kitキーの名前CurrentVersionを検索して環境変数JAVA_HOMEとPATHを設定するバッチファイルを示します。

setjdk.bat(カレントバージョン決め打ち)

@echo off

for /f "skip=2 tokens=2*" %%A in (
 '"reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit" /v CurrentVersion 2> null"'
) do set JDK_VERSION=%%B

for /f "skip=2 tokens=2*" %%A in (
 '"reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JDK_VERSION%" /v JavaHome 2> null"'
) do set JAVA_HOME=%%B

if "%JAVA_HOME%"=="" goto jdk_error
echo "JDK CurrentVersion=%JDK_HOME%"
PATH=%JAVA_HOME%\bin;%PATH%
goto end

:jdk_error
echo "JAVA_HOME cannot found"
exit /b

:end

使用方法

C:\> setjdk
C:\Program Files\Java\jdk1.7.0_21\

C:\>

32bit, 64bit、および複数バージョンのJDKがインストールされているマシンで、バッチファイルにオプションを渡し対応するJDKの環境設定をするようにしたものが以下です。

setjdk.bat(バージョン指定版)

@echo off

if "%1"=="32" (
  shift
  goto jdk32
)

if not "%1"=="" (
 set JDK_VERSION=%1
 goto search_path
)

for /f "skip=2 tokens=2*" %%A in (
 '"reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit" /v CurrentVersion 2> null"'
) do set JDK_VERSION=%%B
echo "JDK version not specified, so using CurrentVersion=%JDK_VERSION%"


:search_path
for /f "skip=2 tokens=2*" %%A in (
 '"reg query "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JDK_VERSION%" /v JavaHome 2> null"'
) do set JAVA_HOME=%%B

if "%JAVA_HOME%"=="" goto jdk_error
echo %JAVA_HOME%
PATH=%JAVA_HOME%\bin;%PATH%
goto end

:option_error
echo "usage: %0 [32] <jdk version>"
exit /b

:jdk_error
echo "JAVA_HOME cannot be set"
exit /b

:jdk32
if not "%1"=="" (
 set JDK_VERSION=%1
 goto jdk32_search_path
)

for /f "skip=2 tokens=2*" %%A in (
 '"reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit" /v CurrentVersion 2> null"'
) do set JDK_VERSION=%%B
echo "JDK version not specified, so using CurrentVersion=%JDK_VERSION%"

:jdk32_search_path
for /f "skip=2 tokens=2*" %%A in (
 '"reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\%JDK_VERSION%" /v JavaHome 2> null"'
) do set JAVA_HOME=%%B

if "%JAVA_HOME%"=="" goto jdk_error
echo %JAVA_HOME%
PATH=%JAVA_HOME%\bin;%PATH%
goto end

:end

使用方法(バージョン番号を指定、64bit版)

C:\> setjdk 1.6
C:\Program Files\Java\jdk1.6.0\

C:\>

使用方法(バージョン番号を指定、32bit版)

C:\> setjdk 32 1.6
C:\Program Files (x86)\Java\jdk1.6.0\

C:\>

使用方法(バージョン番号省略、64bit版)

C:\> setjdk 
"JDK version not specified, so using CurrentVersion=1.6"
C:\Program Files\Java\jdk1.6.0

C:\> 

Cygwin環境で使用する

以下ページを参照してください。

§4 バイナリ・エディタ

Emacs系エディタ

 Emacsエディタは、バイナリファイルの編集モードを持っており、バイナリファイルの16進ダンプ表示および編集を行うことができます。(Hexlモード)

 バイナリ(Hexl)モードで編集するファイルを開くには、

M-x hexl-find-file

を実行し、ファイル名を指定します。

Vimエディタ

 バイナリモードでファイルを開いてから、xddコマンドを利用してVimエディタ中で16進表示と編集を行います。

$ vim -b filename

ファイルが開いてから、以下のコマンドを実行します。

:%!xxd

Windows 2000/XP/Vista/7用のバイナリエディタ

 いくつものフリーのバイナリエディタがあります。Vectorのバイナリエディタページなどからお好みのツールを入手するとよいでしょう。

§5 ビルドツール

 JDK付属のjavacを使ってビルドしてもよいですが、多数のファイルを扱うようになると、ビルドツールが必要になります。

Ant

MakeツールのJava版ともいえる、Javaでは広く利用されているビルドツールです。

簡単なインストール・使い方の紹介記事を以下ページに記載しています。

Maven