« Landon Fuller氏、Mac OS X 向けJava SE 6の改良版Developer Preview Release 2を公開 | トップページ | Java SE 6(SoyLatte) DPR3, NetBeans and Quaqua »

iPhone/iPod touch用Java SE実行環境(JamVM+GNU Classpath)

Jay Freeman (saurik)氏は、GNU ClasspathJamVMをiPhone向けにコンパイルしたバイナリを公開し始めました。自分でコンパイルする場合は、iPhone toolchainを使ってこちらの手順に従えばOKですが、Installer.appにsaurikのリポジトリを追加すれば簡単にバイナリをインストールできます。

iPhone/iPod touchでInstaller.appを起動し、右下のSourcesアイコンをタップして、http://apptapp.saurik.com/ をリポジトリに追加します。

Iphonejava1Iphonejava2

すると、Installer.appのカテゴリにJavaが現れますので、GNU Classpath、JamVM、GNU Classpath Toolsの順番でインストールします。

Iphonejava3

ここで注意ですが、これらのツールは全て/usr配下にインストールされます。特にGNU Classpathに含まれるクラスアーカイブが9MBありますので、ルートパーティション(disk0s1)に十数MBの空きがないとインストールできません。ルートパーティションを圧迫しないためには、予め以下のようにGNU Classpathがインストールされる/usr/share/classpathをセカンドパーティション(disk0s2)に移動してからGNU Classpathをインストールするとよいでしょう。

# mkdir -p /private/var/usr/share/classpath
# ln -s /private/var/usr/share/classpath /usr/share/classpath

また、上記ツールセットにはjavacの実装が含まれていませんので、Eclipse Projectのサイトからecj.jarをダウンロードし、これをCLASSPATHに含めることでjavacも使用することができます。以下に、javacのエイリアス定義の例を示します。

# export CLASSPATH=/usr/share/classpath/tools.zip:~/java/lib/ecj.jar:.
# alias javac='java com.sun.tools.javac.Main'

現在の実装ではAWT/Swingは使えず、JamVMにはJITが含まれないためjavacの実行がとても遅いのですが、jarコマンドをzip/unzipツールとして使用した場合は比較的実用的な速度だと感じました。iPhone/iPod touchでのJava実行・開発環境も徐々に現実的になりつつあることが実感できます。

Iphonejava4

以下の画面は、jetty (jetty-5.1.14)を実行してMobileSafari.appからアクセスしたところです。Term-vt100.appはホームボタンを押すとログインシェルを終了してしまうので、jettyを実行したまま、MobileSafariにスイッチするには、nohupコマンドを使ってjettyをバックグラウンドで実行する必要があります。javacがきちんと動作しているため、JSPのコンパイルも問題なくできていることが分かります。

Iphonejetty1

【追記 2007.12.10】 saurik氏のレポジトリURLが http://iphone.saurik.com/ から http://apptapp.saurik.com/ に変更になりました。今後はこちらを使用してください。なお、前者は後者のエイリアスだそうですので、既に前者で設定済みの方はそのままでも構わないそうです。

【追記 2007.12.11】 GNU Classpathの再インストールに失敗する場合は、Installer.appがアンインストールに失敗した/usr/lib/rt.jarのシンボリックリンクを手動で削除してから、再度インストールしてみてください。Installer.appがシンボリックリンクを削除できないのはバグのようです。

|

« Landon Fuller氏、Mac OS X 向けJava SE 6の改良版Developer Preview Release 2を公開 | トップページ | Java SE 6(SoyLatte) DPR3, NetBeans and Quaqua »

ipod」カテゴリの記事

java」カテゴリの記事

コメント

Hello. I run the repository mentioned as http://iphone.saurik.com/ (and also did most of the work you are talking about), and would like to point out that the URL of the repository has been changed to http://apptapp.saurik.com/. Unfortunately, I apparently got more press than I thought I would in the two days that the repository had been up, and am having to go around posting corrections :(.

投稿: Jay Freeman (saurik) | 2007年12月10日 (月) 20時04分

Hi Jay,
# Should I call you saurik?
Thank you for information on your repository address changes.
I will update this blog entry with your new URL in a few minutes.

I am interested in your great work, especially JocStrap.
I will continue to introduce your work to Japanese iPod touch/iPhone geek.

Keep up the good work!

投稿: javaflavor | 2007年12月10日 (月) 20時46分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/181807/17167256

この記事へのトラックバック一覧です: iPhone/iPod touch用Java SE実行環境(JamVM+GNU Classpath):

« Landon Fuller氏、Mac OS X 向けJava SE 6の改良版Developer Preview Release 2を公開 | トップページ | Java SE 6(SoyLatte) DPR3, NetBeans and Quaqua »