モデリングツールの 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
手順
Contentsディレクトリを作って、Resourcesをその中に移動。
Resources/jude.icoとjude-doc.icoをPreview.appでも他の何かでも、適当なツールでTIFFに変換。
tiff2icnsでTIFFをicnsデータに変換。
下記の内容のContents/Info.plistを作成。
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>