torutkのブログ

ソフトウェア・エンジニアのブログ

Java World誌 2005年10月号

Java World (ジャバ・ワールド) 2005年 10月号

Java World (ジャバ・ワールド) 2005年 10月号

今月号は興味のスコープがあっていたのでどの記事も読み応えがあります。

丸山先生のJBIに関する記事が掲載されています。サマースクールのテキストの抜粋的な内容で、サマースクールの復習にもなります。

Jakarta活用指南はMavenの連載が続いています。

J2SE5解体新書はいよいよJMXです。JMXは注目技術でありながら日本語での記事・書籍が少ないので青柳先生の記事で取り上げられることはうれしいことです。

浅海先生のXMLドリブン開発への誘いでは、機能外要求を考える枠組みとしての品質特性(ISO/IEC 9126)を紹介しています。機能外要求はユースケース分析では漏れてしまうことが多い重要な要求なので、これを考える基盤をしっかり持っておくことが技術者として必要です。
ちなみに記事中でマインドマップを使って非機能要求の構成要素を図示しています。マインドマップも要注目です。

特集記事のDIコンテナ完全ガイドは、よくありがちなXXインストールとトイ・プログラムの例示にならずに、DIの考え方、2つのDIコンテナを比較しながら理解を進め、具体的応用例としてモックテスト、セキュリティ・フレームワークとESBとの連携、と本格的な話題を用意しています。

ここでESB実装のMuleの記事に出会えてついうれしくなりました。

FindBugsの本が出ている

Javaプログラムのバグパターンを抽出し指摘してくれる静的検証ツール。多くの静的検証ツールと違ってJavaソースコードを解析するのではなくバイトコードを解析するものです。バグパターン自体もアンチパターンとして学習の価値があるので、書籍が出るのもうなずけます。

Java SE 6(Mustang)をソースからビルドする

日経バイトに連載されている青木淳さんの記事を読んで衝撃を受けたので、MustangのJDKをビルドしてみるべしとチャレンジしました。

Windows版のビルドに必要なもの

C++コンパイラは今回無償のVisual C++ Toolkit 2003を使ってみます。うまくいくかは何とも・・・。

さて最初の試み

java.netからMustangのソースを入手し作業ディレクトリに展開します。ソースアーカイブは実行可能JAR形式なので、展開にはjavaコマンドで実行します。

~$ java -jar jdk-6_0-ea-src-b48-jrl-18_aug_2005.jar

環境設定は、VC++の環境設定用バッチファイルVCVARS32.BATを実行し、さらにたくさんの環境変数を設定します。VCVARS32.BATは、Visual C++ Toolkit 2003の中に含まれるものを使用します。

エラー対処

D:/win32app/cygwin/bin/df: `C:/TEMP': No such file or directory

これは、C:/TEMPを作るしかありません。

ERROR: Missing ./../src/share/lib/fonts/LucidaTypewriterRegular.ttf. Verify you have downloaded and overlayed on the source area all the binary files.

JDK 5.0またはJDK 6.0(バイナリリリース)の中(jre/lib/fonts)にあるフォントファイル(*.ttf)一式を、j2se/src/share/lib/fonts/の中にコピーします。

/bin/sh: D:/Program Files/Microsoft Visual C++ Toolkit 2003/bin/rc: No such file or directory

VC++ Toolkit 2003にはリソースコンパイラRC.exeが含まれていません。しかし、Microsoft Platform SDKには含まれています。そこで、Platform SDKのRC.exeとRCdll.dllをVisual C++ Toolkitのbinにコピーします。ちなみにショートカットでごまかすことはできませんでした。

環境変数PATHが通っていれば、RC.exeが依存するDLLはRC.exeと同じディレクトリになくてもよいのですが、後々PATH設定で面倒になることもあるので、RC.exeが使用するDLLを調べて必要なDLLは一緒にコピーしています。依存するDLLの調べ方は、Microsoft Platform SDKに入っているDepends.exeを実行します。これはDependency Walkerという名前のGUIツールで、指定した実行ファイルが依存するDLLファイルを調べることができます。

RC.exeの場合、KERNEL32.DLLとRCDLL.DLLです。

../../../../src/windows/resource/version.rc(9) : fatal error RC1015: cannot open include file 'afxres.h'.

以下を入手し、Visual C++ Toolkit 2003/includeに保存しました。
http://cvs.sourceforge.net/viewcvs.py/ffdshow/ffvfw/src/cygwin/afxres.h
あるいは、以下の内容のafxres.hを作ってもごまかせるかもしれません。

#include "WinUser.h"
#define IDC_STATIC (-1)
Makefile:110: *** multiple target patterns. Stop.

これは原因、対処不明。