[ Javaの探求インデックス ]
テキスト/バイナリ・エディタ、Java開発キット、コマンド環境、統合開発環境、パフォーマンス計測ツール、バージョン管理ツール、テスト・ツールなど、Javaプログラム開発に関するさまざまなツールについて、リンク先、設定方法をまとめます。
目次
プログラム(ソースコード)を編集するエディタには、プログラミングのための記述を支援するさまざまな機能があります。例えば、文法にのっとったインデントを自動的に行う機能、文法のキーワード、コメント、変数などに自動で色づけをする機能、先頭数文字を入力したら残りを補完する機能、コンパイラを呼び出す機能、コンパイル・エラー箇所へジャンプする機能、メソッド名などから定義箇所へジャンプする機能、などなどです。
プロフェッショナルは、よい仕事をするためによい道具を選びます。プロフェッショナルなプログラマとしてどのような道具を選ぶのでしょうか。
筆者がJavaプログラム編集用のテキスト・エディタとして欲しい機能は、
プロフェッショナルの道具として代表格の一つに挙げられるのがEmacsエディタです。次で紹介するVimエディタと並んでUNIX系OS上ではプログラム編集用エディタの双璧をなします。また、Windows OS上でもEmacsの移植版ツールが利用できます。
Emacsエディタは標準でもJavaソースコードの編集モードを持っていますが、アドインでJavaの開発用Emacs LispパッケージJDEEを追加するとより高機能なJava編集機能を利用できるようになります。
Solaris 10 x86では、"Solaris 10 6/06 OS Companion Software DVD"の中にEmacs 21.3.1が含まれています。Solarisのデスクトップ上での日本語入力、表示ができます。
NTEmacsまたはMeadowが利用できます。日本語情報としてはMeadowが多いので、Meadowの利用がよいでしょう。NetInstall版を使うとインストールが簡単ですし、Emacs用のJava開発用拡張パッケージ(JDEE)も同時にインストールすることができます。
各種ディストリビューションがありますが、大抵はEmacsエディタが含まれています。ちなみにCentOS 4.4には、Emacs 21.3.1が含まれていました。
独特のキーバインド(モード)を持つため、好みが分かれるところですが、手に馴染むと強力な道具となります。UNIX系OSではほぼ必ずインストールされているので、UNIX系OSの管理をする人はViが使えないと仕事にならない程です。
ただし、標準のViエディタはプログラム(ソースコード)編集機能が貧弱なので、プログラム編集用には機能が拡張されたVimを使用します。また、Windows
OS上でもVimの移植版ツールが利用できます。
SunがスポンサーとなっているオープンソースコミュニティNetBeans.orgで開発されているソフトウェア開発用ツールです。主としてJavaの統合開発環境(IDE)。邪道ですがエディタとして使ってもよいかと。
簡単な解説を以下ページに記載しています。
IBMがスポンサーとなっているオープンソースコミュニティEclipse Foundationで開発されているソフトウェア開発用ツールです。主としてJavaの統合開発環境(IDE)。邪道ですがエディタとして使ってもよいかと。
eclipseのダウンロードサイトに行き、以下のファイルをダウンロードします。
圧縮解凍ツール等でインストールディレクトリ下に解凍します。
展開した中にあるeclipse.exeを実行します。
2007年9月末時点では日本語化パックはリリースされていません。有志でEclipseの日本語化をしているプロジェクト"pleiades"を入手します。
筆者はEmacsかViしか使わないので、その他のエディタは自ら使うことがありません。そのため、ここではその他として十把一絡げに簡単に列挙するに留めます。
Java開発キット(JDK)には、Javaコンパイラ、Java仮想マシン、JNI用コマンド、JavaDocツール、Javaデコンパイラ、デバッガ、その他さまざまなツールが含まれています。
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を最後に以後は有償の契約での対応となっています。
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 #
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用の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 $
ドキュメント一式です。主要機能の技術ガイド、クラスライブラリAPIのJavaDoc文書、コマンドの解説などが含まれています。JDKと同じくダウンロードできます。
任意の場所に展開します。一例として、<JDKインストールディレクトリ>\jdk1.6.0\の下がよいでしょう。
Windows OSの標準コマンドライン環境は、従来からのコマンドプロンプト、およびWindows7から標準搭載されたPowerShellの2種類があります。PowerShellは、XP、Vista用をマイクロソフトから別途ダウンロードして使用することも可能です。
また、Unix環境をエミュレートするCygwinがあり、これを入れるとUnixのシェル環境が利用できるようになります。
複数のバージョンの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:\>
以下ページを参照してください。
Emacsエディタは、バイナリファイルの編集モードを持っており、バイナリファイルの16進ダンプ表示および編集を行うことができます。(Hexlモード)
バイナリ(Hexl)モードで編集するファイルを開くには、
M-x hexl-find-file
を実行し、ファイル名を指定します。
バイナリモードでファイルを開いてから、xddコマンドを利用してVimエディタ中で16進表示と編集を行います。
$ vim -b filename
ファイルが開いてから、以下のコマンドを実行します。
:%!xxd
いくつものフリーのバイナリエディタがあります。Vectorのバイナリエディタページなどからお好みのツールを入手するとよいでしょう。
JDK付属のjavacを使ってビルドしてもよいですが、多数のファイルを扱うようになると、ビルドツールが必要になります。
MakeツールのJava版ともいえる、Javaでは広く利用されているビルドツールです。
簡単なインストール・使い方の紹介記事を以下ページに記載しています。