侍1.2.9リリース
・複数ファイルの読み込みが1.2.8 でできなくなっていたのを修正
-> IBM の javacore の解析に
・Kill Bill モードが使えなくなっていたのを修正
->リファクタリングの最中に失われていました。kill bill モードファンの皆様お待たせしました。
・[ファイル>開く]でファイルを開けなかったのを修正
ダウンロードはこちら -> 侍1.2.9
起動はこちらから ->
(要JDK1.4以降)
ちなみに Sun JDK は2回くらい起動しないと最新版にアップデートされないことがある、ような気がする。
-> IBM の javacore の解析に
・Kill Bill モードが使えなくなっていたのを修正
->リファクタリングの最中に失われていました。kill bill モードファンの皆様お待たせしました。
・[ファイル>開く]でファイルを開けなかったのを修正
ダウンロードはこちら -> 侍1.2.9
起動はこちらから ->

(要JDK1.4以降)
ちなみに Sun JDK は2回くらい起動しないと最新版にアップデートされないことがある、ような気がする。
jar 署名
侍の署名がとっくに期限切れになっていたのでアップデート。、したときのメモ。
参考:JavaKey-02 証明書を作成する。
http://www.ki.rim.or.jp/~kuro/Java/JavaKey/JavaKey-02.html
$ keytool -genkey -alias myself -keystore mykeystore
キーストアのパスワードを入力してください: ****
姓名を入力してください。
[Unknown]: Yusuke Yamamoto
組織単位名を入力してください。
[Unknown]:
組織名を入力してください。
[Unknown]:
都市名または地域名を入力してください。
[Unknown]: Tokyo
州名または地方名を入力してください。
[Unknown]:
この単位に該当する 2 文字の国番号を入力してください。
[Unknown]: JP
CN=Yusuke Yamamoto, OU=Unknown, O=Unknown, L=Tokyo, ST=Unknown, C=JP でよろしいですか?
[no]: y
の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください): ****
$ jarsigner -storepass **** -keystore mykeystore samurai.jar myself
警告: 署名者の証明書は 6 か月以内に期限切れになります。
参考:JavaKey-02 証明書を作成する。
http://www.ki.rim.or.jp/~kuro/Java/JavaKey/JavaKey-02.html
$ keytool -genkey -alias myself -keystore mykeystore
キーストアのパスワードを入力してください: ****
姓名を入力してください。
[Unknown]: Yusuke Yamamoto
組織単位名を入力してください。
[Unknown]:
組織名を入力してください。
[Unknown]:
都市名または地域名を入力してください。
[Unknown]: Tokyo
州名または地方名を入力してください。
[Unknown]:
この単位に該当する 2 文字の国番号を入力してください。
[Unknown]: JP
CN=Yusuke Yamamoto, OU=Unknown, O=Unknown, L=Tokyo, ST=Unknown, C=JP でよろしいですか?
[no]: y
(キーストアのパスワードと同じ場合は RETURN を押してください): ****
$ jarsigner -storepass **** -keystore mykeystore samurai.jar myself
警告: 署名者の証明書は 6 か月以内に期限切れになります。
Generics 最高!
Java は、型に厳しくすることで実行時エラーをなくすというコンセプトは良いが、((クラス名)list.get(i)).メソッド() なんて苦痛すぎ。
JDK5.0 で導入された generics ではかなりの場面でわかりきったキャスティングを減らせて便利!
Mac では Tiger(JDK5.0ではなく、OS X 10.4)まで Tiger(JDK5.0)がリリースされなかったこともあり最近まで恩恵にあずかれなかった。
使ってみればこれはこれはほんとに便利!
というわけで最近は generics を使った楽ちんプログラミングを楽しんでいる。
たしか、generics を使っても target を 1.4 とか設定しておけば JDK5.0 じゃなくても動くはず。
JBuilder では Project -> Project Properties -> Build -> Java で
Language Features: Java 2 SDK, v 5.0(generics enabled)
Target VM: Java 2 SDK, v 1.4 and later
と設定するだけ。
さてさて、侍を全部ビルドするか、っちゅーことで ant でビルドして実行してみたら、
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/bin/java -jar samurai.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: net/homeip/yusuke/samurai/gui/Monitor (Unsupported major.minor version 49.0)
あぁ、build.xml 内で target を指定してなかったか。
修正して再度ビルドしてみれば
javac: リリース 1.5 のソースにはリリース 1.5 のターゲットが必要です。
あれれ、source 1.5 target 1.4 って指定できないのか・・・。JBuilder でできるのは独自のコンパイラを内蔵してるからかな?
クラスファイルのヘッダを適当にいじれば強引に動きそうな気がしなくもないけれども正攻法はだめみたいだ。
ちょっと調べてみると source 1.5 target 1.4 ができたバージョンもあったらしい。記憶違いではなかった。
既に100カ所以上書き換えているので今更JDK1.4用に書き戻す気はないので、さてどうしたもんかとしらべてみたら、やっぱりありました。generics を使いながら JDK1.4 で動かすやつが。
・Retroweaver
http://retroweaver.sourceforge.net/
クラスファイルを操作して generics 等を使ったクラスをJDK1.4でも動作可能に変換してくれるらしい。ライセンスも BSD-style license ということで心おきなく使える。
Ant での使い方も書いてあり、自分のビルドスクリプトに取り込むのもとても簡単。
JDK5.0 で導入された generics ではかなりの場面でわかりきったキャスティングを減らせて便利!
Mac では Tiger(JDK5.0ではなく、OS X 10.4)まで Tiger(JDK5.0)がリリースされなかったこともあり最近まで恩恵にあずかれなかった。
使ってみればこれはこれはほんとに便利!
というわけで最近は generics を使った楽ちんプログラミングを楽しんでいる。
たしか、generics を使っても target を 1.4 とか設定しておけば JDK5.0 じゃなくても動くはず。
JBuilder では Project -> Project Properties -> Build -> Java で
Language Features: Java 2 SDK, v 5.0(generics enabled)
Target VM: Java 2 SDK, v 1.4 and later
と設定するだけ。
さてさて、侍を全部ビルドするか、っちゅーことで ant でビルドして実行してみたら、
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/bin/java -jar samurai.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: net/homeip/yusuke/samurai/gui/Monitor (Unsupported major.minor version 49.0)
あぁ、build.xml 内で target を指定してなかったか。
修正して再度ビルドしてみれば
javac: リリース 1.5 のソースにはリリース 1.5 のターゲットが必要です。
あれれ、source 1.5 target 1.4 って指定できないのか・・・。JBuilder でできるのは独自のコンパイラを内蔵してるからかな?
クラスファイルのヘッダを適当にいじれば強引に動きそうな気がしなくもないけれども正攻法はだめみたいだ。
ちょっと調べてみると source 1.5 target 1.4 ができたバージョンもあったらしい。記憶違いではなかった。
既に100カ所以上書き換えているので今更JDK1.4用に書き戻す気はないので、さてどうしたもんかとしらべてみたら、やっぱりありました。generics を使いながら JDK1.4 で動かすやつが。
・Retroweaver
http://retroweaver.sourceforge.net/
クラスファイルを操作して generics 等を使ったクラスをJDK1.4でも動作可能に変換してくれるらしい。ライセンスも BSD-style license ということで心おきなく使える。
Ant での使い方も書いてあり、自分のビルドスクリプトに取り込むのもとても簡単。