職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

Xcode で Java 開発 2

先日こんな記事 Xcode で Java 開発 を書いたせいか、このサイトに「Xcode Java 開発」といったキーワードで訪れる方が非常に多くおられます。
それなのに書いてある内容が失敗談ばかりというのは申し訳なく思い、少しばかり深く調査してみることにしました。

<当時発見した問題点たち>


  • 新規プロジェクトを作成する際にお世話になる「プロジェクトのテンプレート」に登場する「Java Application」とは、Javaを用いたMacOSアプリケーションのテンプレートである。
  • ビルド時のエラーは日本語で表示しよう…と頑張っているようであるが、全ての文字が8進数エスケープされたもの(\225 みたいなの)が延々と続くだけで、エラー内容は到底わからない。
  • stdout(標準出力)に吐いた文字データは、専用のwindowに表示されるのではなく、OS標準のログ閲覧アプリ console.app で閲覧しないといけない。


<解決策たち>

■問題1は、「Java Tools」というテンプレートを使えばOK。
(注)ここでは MacOSX アプリの開発ではなくて、 pure-javaJavaアプリを開発しようとしています。

■かなりの難題と思われた問題2は、プロジェクトの設定を変更することにより、対処できます。

プロジェクトを右クリック(Ctrl + click)して「情報を見る」を選択
20110109_xcode1

「ビルド」を選択し、画面左下の歯車メニューから「ユーザ定義の設定を追加」し、以下のように入力する。
設定: ANT_OPTS
値: -Dfile.encoding=UTF8
20110109_xcode2

そして、わざとエラーになるようなソースでビルドしてみると…
20110109_xcode3

おおおおお!エラーメッセージが8進エスケープされていない日本語で表示されました!
いや、本当は英語で表示させたいんですけどね。とりあえず、これで「使える」開発環境になるかと思います。
(注)変数名「enums」って違和感ありまくりですね。スルー希望。

以下のサイトの情報で助けられました。Thanks!
「雑多FAQ」http://www.okada.jp.org/WOWiki/index.php?%BB%A8%C2%BF%20FAQ
「からすの日記」http://d.hatena.ne.jp/n-karasu/20080817/1218968355

■問題3は、あっさりと自己解決しました。
「実行」メニューの「コンソール」を選択すると、stdoutの内容が表示されます。
stdinの入力も、このコンソールから入力可能です。

■環境情報
Mac OS X 10.6.6 (Snow Leopard)
Xcode 3.2.5 with iPhone SDK

■追記@2011.05.04
どうやらXcode 4 からは、Javaのプロジェクトは(新規には)作成できなくなっているようです。既存のプロジェクトファイル(.projファイル)を開く事はできるけど。ビルドできるかどうか…等は後日検証したいと思います。
まあ、もしビルドできたとしても、この先生きのこるのは難しいでしょうね。>XcodeJava開発