2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 |
2009-07-20
Mac OS XのJava 6とNetBeansのmercurialサポートを組み合わせる方法
gitが大流行の昨今、私はなんとなくコマンドの使い方とかでmercurialのほうが好きだったりします。
で、NetBeansにはCVS, Subversionに並んで、初期状態からmercurialのサポートが組み込まれています。Sunが提供している公開リポジトリ「Kenai」を標準サポートしているので、それとの兼ね合いもあってデフォルトで組み込まれてるんでしょう。
ところが、Mac OS XのJava 6とNetBeans+mercurialを組み合わせると、ちょっと困った問題にぶち当たります。
ログで日本語が使えないんですね...
「X-MAC-JAPANESEなんてエンコーディング知りません」というような意味の英語メッセージが表示されて、コミットが失敗します。
というのは、Mac OS XのJava 6は、なぜか標準エンコーディングがShift_JISになっているのです。「X-MAC-JAPANESE」というのは、Macに少し特化したShift_JISですね。Java 5ではデフォルト・エンコーディングがUTF-8だったのですが、なんでJava 6でShift_JISになったのか...
NetBeansをJava 6で起動すると、NetBeansが認識するデフォルト・エンコーディングはShift_JISになります。UTF-8ならば何事もなくコミットできるのですが、X-MAC-JAPANESEなんてエンコーディングはわからないのでエラーになってるわけです。
mercurialのログ・エンコーディングは、環境変数HGENCODINGで決定されるので、これを設定してやれば解決なんですが、どこに設定するか、というのが問題です。うまくNetBeansに認識させないといけない。.bashrcとかに書いても、NetBeansはターミナルから起動する訳じゃないので意味がない。
で、Mac版NetBeansはアプリケーション・パッケージ化されてはいるものの、パッケージの中を見ると、jar版のNetBeansと同じです。FinderでNetBeansアイコンを右クリックして「パッケージの内容を表示」を選択。「Contents/Resources/NetBeans/bin」の下に「netbeans」という名前のシェル・スクリプトが入っています。
このシェル・スクリプトを修正し、起動前に環境変数HGENCODINGを設定してやれば、NetBeansにだけHGENCODINGを設定することができます。次のように、netbeansファイル末尾の起動処理直前にexport命令を追加してやります。
export HGENCODING="shift_jis" # in case of macosx, the apple.laf.useScreenMenuBar property should be ideally in the Info.plist file # but it doesn't get propagated into the executed java VM. case "`uname`" in Darwin*) eval launchNbexec \ --jdkhome '"$netbeans_jdkhome"' \ -J-Dcom.apple.mrj.application.apple.menu.about.name=NetBeans \ -J-Xdock:name=NetBeans \ '"-J-Xdock:icon=$progdir/../nb6.7/netbeans.icns"' \ --branding nb \ --clusters '"$netbeans_clusters"' \ -J-Dnetbeans.importclass=org.netbeans.upgrade.AutoUpgrade \ -J-Dnetbeans.accept_license_class=org.netbeans.license.AcceptLicense \ ${netbeans_default_options} \ '"$@"' ;; *) eval launchNbexec \ --jdkhome '"$netbeans_jdkhome"' \ --branding nb \ --clusters '"$netbeans_clusters"' \ -J-Dnetbeans.importclass=org.netbeans.upgrade.AutoUpgrade \ -J-Dnetbeans.accept_license_class=org.netbeans.license.AcceptLicense \ ${netbeans_default_options} \ '"$@"' ;; esac
これでMac+Java 6+NetBeans+mercurialでも日本語ログメッセージでコミットできるようになります。
- 31 http://www.matsuaz.com/matsumotojs/2010/01/07/1262794647184.html
- 23 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=0ff&num=50&q=java+共通のメソッドを使う&btnG=検索&lr=
- 20 http://reader.livedoor.com/reader/
- 13 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/t_yano/20090720/1248028284
- 12 http://www.google.co.jp/search?q=ニコニコ プレミアム&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 10 http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=HxS&q=Java+for+Mac+OS+X+10.4+1.6&btnG=検索&lr=lang_ja
- 9 http://www.google.co.jp/reader/view/
- 8 http://www.google.co.jp/search?hl=ja&q=ニコニコ+プレミアム&btnG=Google+検索&lr=&aq=0r&oq=ニコニコ ぷれ
- 8 http://www.google.co.jp/search?q=netbeans+mac&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP-mac:official&client=firefox-a
- 7 http://www.google.co.jp/reader/view/?hl=ja&tab=wy





