タイトルMac OS X 10.1のProject BuilderでJavaのプログラムを作成する場合の注意カテゴリーCocoa, Java, WebObjects, ProjectBuilder/Interface Builder
作成日2001/11/6 10:21:25作成者新居雅行
Appleから、末尾にあるような開発情報が掲載されたが、これを踏まえて、Mac OS X 10.1でJavaでのプログラミングを行う場合に勘案しないといけない点を説明しておこう。Mac OS X 10.1に対応したDeveloper Toolsとして、クラスのブラウズ機能が追加されたProject Builder 1.1がリリースされたが、Javaのプログラムを開発していて、いきなりProject Builderがフリーズしてしまうという状況になってしまい困った人も多かっただろう。Appleからの情報では、WebObjects 5となっているが、実際にはSwingなどを使ったPure Javaのプログラミングをしている場合、さらにはCocoa-Javaでも同様な症状になる。つまり、問題のポイントは、コンパイラのjavacにあると見てよいと思われる。
まず、コンパイラに失敗すると、ビルド結果を表示している部分にエラーメッセージが文字化けで表示されるとともに、Project Builderが応答しなくなる。そして、強制的に終了しなければならなくなる。これを防ぐ方法がAppleから公開されたが、すでにメーリングリストでも公開されてもいた。方法は次の通りだ。まず、「プロジェクト」メニューの「アクティブターゲットを編集」(Command+option+E)を選択して、ターゲットの設定を表示する。そして、「ビルド設定」のタブを表示する。そして、スクロールすると、いちばん下のところに「ビルド設定」という一覧がある。そこに「JAVA_COMPILER_FLAG」という項目があるが、イコールの右側は空欄になっている。そのイコールの右側をダブルクリックすると文字入力できるようになるので、そこに「-J-Dfile.encoding=UTF8」と指定する。いちおう、これだけでコンパイルエラーはきちんと日本語で表示され、コンパイルに失敗したときにフリーズするということはなくなる。ただ、一部まだ文字化けメッセージが見られるので、それを嫌うのなら、さらにコンパイル設定に次のように設定を追加する。まず、リストのどこかを選択して、enterキーを押すと「BUILD_SETTING」と書かれた新しい行が追加される。BUILD_SETTINGの部分をダブルクリックして、「OTHER_JARFLAGS」と書き換える。そして、その行のイコールの右側は前と同様に、「-J-Dfile.encoding=UTF8」と指定する。こうすれば、コンパイル時の基本的な問題はクリアされる。
しかしながら、ここでソースコードのエンコーディングの問題が発生する。ソースをすべてアスキーコードの範囲内(つまり1バイト文字)で記述している場合には問題は生じないが、文字列やコメントに日本語があると無意味にエラーが出てしまう。ソースファイルのエンコーディングは、最初は「日本語(Mac OS)」となっているがこれはおおむねシフトJISである。なお、エンコーディングは、ソースファイルに挿入ポイントがある状態で、「形式」メニューの「ファイルエンコーディング」から選択できる。もちろん、前期のビルド設定で追加した指定はコンパイラ自身が読み込むファイルのエンコードがUTF-8であるという指定である。従って、ファイルのエンコードについては結果的には「UTF-8」を選択することで問題はくなる。
では、ここで、Non-lossy ASCIIにしたいところであるが、これにすると、バックスラッシュ1文字がファイルの中では2文字のバックスラッシュになってしまう。やはり、ソースファイルのエンコーディングはUTF-8しか選択肢はなさそうだ。なお、バックスラッシュの入力方法も迷うところだ。実は¥記号を入力すると、バックスラッシュとは異なる文字になる。このあたりはUnicodeに厳密なのだろう。そこで、1つは、ことえりのパレットを使って入力すれば良い。文字パレットを表示して、「ユニコード表」を選ぶ。そして、文字コードが005Cがバックスラッシュである。別の方法は、システム環境設定の「地域情報」にある「キーボードメニュー」から、「British」を選択しておく。すると、キーボードメニューにBritishが追加されるのでそれを選択すると、JISキーボードだと]キーがバックスラッシュとなる。キーについては、UtilitiesフォルダにあるKey Capsで確認しよう。いずれにしても、一度入力しておいて、コピー&ペーストするのが手軽であるだろう。
こうした問題は、おそらく次のProject Builderのリリースでは修正されているとは思うのであるが、本質的ではない部分で悩まされることに違和感を感じる人もいることは確かだ。次回のリリース以降は素直に開発に取り組めるデフォルト設定になることを期待したい。
関連リンクMac OS X 10.1でWebObjects 5をお使い頂く際のご注意