K.Sasada's Home Page

Rava / JavaVM on Ruby

なんじゃそりゃ

Ruby で書いた JavaVM です。pure ruby です。ええ。

JRuby ってあるじゃないですか。あれは、Java で Ruby インタープリタ動かすやつ(らしい)ですけど、これは、Ruby で Java バイトコードを動かします。

どう考えても、使う利点って(殆ど)無いような気もしますが。

誰か考えてそうで、だけど(その無意味さに)誰も作っていなかった(一応、Google様は知らなかった。作っていた人がいたらごめんなさい)。

まぁ、ジョークの一つとしてご笑覧ください。

つかうとうれしいひと

どんな人が使うとうれしいかと申しますと。

少しまじめに(必死に利点を考えて)、

でも、たしか JRuby もそういうことできるんだよねぇ、確か。違ったっけ。

Java のプログラムが Ruby から呼べても、そんなうれしいこと無さそうな気がするしなぁ。

もくてき

自分の目的ですが。

  1. Ruby の練習
  2. JavaVM の復習
  3. 今後の研究のため(ほんとか?)
  4. 現実逃避(動機の 50% くらい)

つかいかた

まず、jdk とってきて、jdk/jre/lib/rt.jar を解凍して、*.class をばらしてください。固まってると、読めません。

んで、同じディレクトリに 例えば java/lang/* を置いておきます。そんで、適当に動かしたいものを javac で作ってください。あとは動かすだけです。

ruby rava.rb [java class name] [args 1] [args 2] ...

で、動きます。多分。

また、

ruby rjclass.rb [java class name]

で、クラスファイルの情報を、これでもか、ってくらい表示します。ちょっといいかげんだけど。

また、

ruby rjnative.rb [java class name]

で、ネイティブメソッド定義用の雛を吐きます。「〜はげ〜んき」など、言いません。

だうんろーど

./rava001.lzh

Windows2000 Pro / ruby 1.6.7 mswin版 だけで動作確認しています。

おやくそく

Ruby と同じライセンスでお願いします。(と言っておくと、面倒がないらしい)。

原則、私に迷惑がかからないように。あとは好きにしてください。

バグ報告とか、利用報告とかあると、うれしく思います。

あ、著作権は放棄しません。というか、できません?

もうできてること

とりあえず並べてみました。

まだできてないこと

とりあえず、まだたっくさんあります。

未実装部分を New! って言うなよ・・・。いや、ほんま忘れてたんです。

おもうこと

Ruby やっぱすごいわぁ。一週間、実質週末3日間だけでこれだけできちゃうんだもんなぁ。

まじめな話、これでVMのナニが研究できるんじゃないかともくろんでます。とりあえず、来年の仕事だけれど、それは。

まぁ、ジョークってことで一つ。

名前。JRuby の向こうを張って、RJava ってしたかったんだけれど、既に、rjava , remote java っていうユーティリティがあるそうで断念。とりあえず Rava。なんとなく、シムシティーの新聞を思い出しませんか?

Ruby と Java 、いったりきたりしてソース書いてると、だめっすね。とりあえず Java がかけなくなった。文字列を''で囲んでみたり、';' を忘れてみたり。

拙いソースですが、改善点などあれば、ご教授いただければ幸いです。

らいせんす

Sun のクラスファイルのライセンスって、どうなってるんですかね? 何も考えず、JRE のクラスを解凍して使ってたんですが。これ自体を配ってるわけじゃないから大丈夫だとは思うんですが、実際、それがないと動かないし。ネイティブコードの名前とか、勝手に使ってるし。うーん、どうなのかな? 識者のコメント求む。

Sasada Koichi / sasada@namikilab.tuat.ac.jp
$Date: 2003/04/28 10:27:52 $