世界線航跡蔵

Mad web programmerのYuguiが技術ネタや日々のあれこれをお送りします。

2008年01月21日

JudeをMacOSXのアプリケーションにする

モデリングツールの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

手順

  1. JREやらWindows用インストーラーなんかは不要だ。本体だけzipで固めたやつを落としてくる。
  2. zipを展開するとjude_professionalディレクトリが出てくる。これをResourcesに改名
  3. Contentsディレクトリを作って、Resourcesをその中に移動。
  4. Contents/MacOSディレクトリを作成。
  5. Contents/MacOS/Judeを作成。../Resources/judeへのsymlink
  6. 8行目のJUDE_HOMEの設定をJUDE_HOME="`dirname $0`/../Resources"に変更
  7. Resources/jude.icoとjude-doc.icoをPreview.appでも他の何かでも、適当なツールでTIFFに変換。
  8. tiff2icnsでTIFFをicnsデータに変換。
  9. 下記の内容のContents/Info.plistを作成。
  10. ディレクトリ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>

トラックバック

http://yugui.jp/articles/743/ping
JudeをMacOSX流に使う (改) (ratio - rational - irrational)
前にやったやつでもそれなりに満足だったのだけれども、 起動後にDock上のアプ...
[仕事]Jude を MacOS X のアプリケーションにする(の微妙な補足) (nomblog はてなダイアリー出張所)
http://idm.s9.xrea.com/ratio/2008/01/21/000743.html ほぼこちらに書いてある通りなのですが、そのままやると (コンソールで確認したところ)「Jude が permission denied だよ」と怒られるようです。 なので、ターミナルで chmod u+x jude とやって無事起動に成功(prof

コメント

Easylife (2008年01月22日 08時16分34秒)

 自分はJudeをDebianにいれて動かしていました。
フォントの問題など特に問題は起きずにデフォルトの設定で動作した記憶があります。

sho@中の人 (2008年01月29日 10時12分58秒)

グーグル先生よりたどり着きました。
ぬるぽ情報を提供してくれてありがとうございます!

Yuguiさんの情報のおかげで、近々リリース予定の5.2には本件の修正が取り込まれています。

blog comments powered by Disqus

ご案内

前の記事
次の記事

タグ一覧

過去ログ

  1. 2011年12月
  2. 2011年07月
  3. 2011年03月
  4. 2011年01月
  5. 過去ログ一覧

フィード

フィードとは

その他

Powered by "rhianolethe" the blog system