Jul 08, 2011

[Misc] astah の「ファイルがオープンできません」に対応する方法

astah で過去に作成したファイルを読み込もうとすると「ファイルがオープンできません」というエラーで一切読み込めなくなった。 公式サイトを見てみたらお知らせに情報が掲載されていた。

astah - Javaアップデート後に発生する問題について
http://astah.change-vision.com/ja/java-trouble.html
お知らせに記載されている回避方法はかなりざっくりなので、MacOS X での対応方法をメモしておく。

対応方法

  1. ADCから "Java for Mac OS X 10.6 Update 4 Developer Package" をダウンロードする。
  2. ダウンロードした dmg から JDK 1.6.0_24 をインストールする。
  3. インストールされたことを確認する。
    $ cd /Library/Java/JavaVirtualMachines/1.6.0_24-b07-334.jdk/Contents/Commands
    $ ./java -version
    java version "1.6.0_24"
    Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3425)
    Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
    
  4. astah の Info.plist を編集する。
    $ cd /Applications/astah\ professional/astah\ professional.app/Contents/
    $ cp ./Info.plist ./Info.plist.original
    $ vi ./Info.plist
    $ diff ./Info.plist.original ./Info.plist
    56c56
    < 		<string>1.6+</string>
    ---
    > 		<string>1.6.0_24</string>
    
これで今まで通り "astah professional.app" (もしくは "astah community.app") から astah を起動して問題無く利用することができるはず。

それにしても既存ファイルが一切読み込めなくなる、というのは致命的すぎる。 Apple は古い環境を躊躇無く切ってくるから Lion で JDK 1.6.0_24 以前が動作するのか不安。 Lion 発売までに .astah ファイルのコンバータが提供されると良いのだけれど・・・。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jul 01, 2011

[Apple] 固定のレスポンスを返す HTTP Server を立てる

ローカルの MacOS X にどんなリクエストに対しても固定のレスポンスを返す HTTP Server を立ててみた。 手軽に利用できる python の BaseHTTPServer をカスタマイズして実現してある。

HTTP Server の準備

以下の様な python のコードを作成。
/usr/share/local-http-server.py

#!/usr/bin/python
import BaseHTTPServer

class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(s):
        s.send_response(200)
        s.send_header("Content-type", "text/html")
        s.end_headers()
        s.wfile.write("")

if __name__ == '__main__':
    BaseHTTPServer.HTTPServer(('localhost', 80), MyHandler).serve_forever()

MacOS X の自動起動設定

/Library/StartupItems/LocalHTTPServer/LocalHTTPServer

#!/bin/sh

. /etc/rc.common

start() {
  /usr/share/local-http-server.py &
}
stop() {
  pid=`ps -ax | grep "/usr/bin/python /usr/share/local-http-server.py" | grep -v grep | sed -E "s/^ +//" | sed -E "s/ .+$//"`
  if [ "$pid" != "" ]
    then
      kill $pid;
  fi
}

case $1 in
  start)
    ConsoleMessage "Starting Local HTTP Server"
    start;
    ;;
  stop)
    ConsoleMessage "Stopping Local HTTP Server"
    stop;
    ;;
  restart)
    ConsoleMessage "Restarting Local HTTP Server"
    stop;
    start;
    ;;
  *)
    echo "$0: unknown argument: $1"
    ;;
esac

/Library/StartupItems/LocalHTTPServer/StartupParameters.plist
{
  Description     = "LocalHTTPServer";
  Provides        = ("LocalHTTPServer");
  OrderPreference = "Early";
}

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |