モデリングツールのJudeは気に入ってる。マインドマップとUMLとコード生成を連携させるっていうことができるし、何よりも開発者の顔が見えるのが良い。中の人たちはちょくちょくオープンソース系のイベントに顔を出してるので、言いたいことはすぐに言える。
そう言うわけで、これをMacでも使いたいわけだ。(ちなみに、JudeはJavaアプリケーションなのでrun anywhereだけれども、Macはサポート対象外である)どうせなら標準バンドルのアプリケーションと同じように、独自のアイコンを持っていて、アプリケーションのディレクトリをダブルクリックするだけで起動するようにしたい。ディレクトリツリーをFinderから実行可能にするのはそれほど難しいわけじゃない。でも、前にもやったのにやり方の細かいところを忘れていたので今回はメモしようと思う。
バージョンの選択
Jude Professional 5.1.1にした。5.2 beta 1はぬるぽを投げて起動してくれなかった。
KeyStr = is invalid java.lang.NullPointerException at java.lang.String.endsWith(String.java:1296) at jE.a(X:222) at jE.a(X:227) at jE.a(X:204) at jE.c(X:72) at wA.n(X:151) at aI.<init>(X:59) at JP.co.esm.caddies.jomt.Jude.e(X:516) at JP.co.esm.caddies.jomt.Jude.f(X:419) at JP.co.esm.caddies.jomt.Jude.a(X:75) at jS.run(X:406) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
環境は
$ java -version java version "1.5.0_13" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237) Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing) $ uname -a Darwin yugui-macbook.local 9.1.0 Darwin Kernel Version 9.1.0: Wed Oct 31 17:46:22 PDT 2007; root:xnu-1228.0.2~1/RELEASE_I386 i38
手順
- JREやらWindows用インストーラーなんかは不要だ。本体だけzipで固めたやつを落としてくる。
- zipを展開するとjude_professionalディレクトリが出てくる。これをResourcesに改名
- Contentsディレクトリを作って、Resourcesをその中に移動。
- Contents/MacOSディレクトリを作成。
- Contents/MacOS/Judeを作成。../Resources/judeへのsymlink
- 8行目のJUDE_HOMEの設定をJUDE_HOME="`dirname $0`/../Resources"に変更
- Resources/jude.icoとjude-doc.icoをPreview.appでも他の何かでも、適当なツールでTIFFに変換。
- tiff2icnsでTIFFをicnsデータに変換。
- 下記の内容のContents/Info.plistを作成。
- ディレクトリJudeの中にContentsを移動。JudeをJude.appと改名。
Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>Japanese</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>jude</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>jude-doc.icns</string>
<key>CFBundleTypeName</key>
<string>Jude Document File</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>Jude</string>
<key>CFBundleIconFile</key>
<string>jude.icns</string>
<key>CFBundleIdentifier</key>
<string>jp.co.esm.caddies.jomt.jude</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Jude</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleVersion</key>
<string>5.1.1</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>
コメント
自分はJudeをDebianにいれて動かしていました。
フォントの問題など特に問題は起きずにデフォルトの設定で動作した記憶があります。
グーグル先生よりたどり着きました。
ぬるぽ情報を提供してくれてありがとうございます!
Yuguiさんの情報のおかげで、近々リリース予定の5.2には本件の修正が取り込まれています。