Skip to content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
COPYING
README.txt

README.txt

---------------------
	Rava / JavaVM on Ruby

		written by K.Sasada
			---------------------
	------------------------
-----------------------


■ 1 - Rava / JavaVM on Ruby

- Tue, 15 Oct 2002 09:47:06 +0900、初稿。

□ 1.1 なんじゃそりゃ

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

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

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

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

□ 1.2 つかうとうれしいひと

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

- JavaVM 勉強したいけど、ドキュメント読むの面倒だなぁ、Ruby 
  ソースのほうが、読むの楽だしぃ、という人(いるんかそんなの)
- もう、Ruby しか使いたくないけど、しょうがなく Java を使う人
  (うれしいのかほんとに)

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

- Java ネイティブメソッドを書きたいけれど、プロトタイプを作りたい
  (Ruby スクリプトでネイティブメソッドかけるので、プロトタイプを作るのは便利かもしれない)

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

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

□ 1.3 もくてき

自分の目的ですが。

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

□ 1.4 つかいかた

まず、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]
>

で、ネイティブメソッド定義用の雛を吐きます。

□ 1.5 だうんろーど

[[http://www.namikilab.tuat.ac.jp/~sasada/prog/raja001.lzh]]

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


□ 1.6 おやくそく

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

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

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

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

□ 1.7 もうできてること

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

- バイトコード半分くらい?
- メソッド呼び出し
- スタティックメソッド呼び出し
- フィールド読み書き
- スタティックフィールド読み書き
- ネイティブメソッドを ruby で書き書き
- クラスの解釈・表示
- 継承・ポリモフィズムの実現(メソッド呼び出しで出来上がってるってことだけど)

□ 1.8 まだできてないこと

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

- バイトコード半分くらい?
- スレッド
- うごかないネイティブメソッドがごろごろ
- ネイティブメソッドのも〜っと簡単な追加
- jar アーカイブから直接クラスをロード
- 完璧なコード(バグが結構ありそう)
- 速さ(おせー・・・)
- テスト(どーやって作ればいいんだ、こんなものに)
- すてきな名前(Rava はかっこわるいぞ)
- まだまだありそう

□ 1.9 おもうこと

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

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

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

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

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

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


■ 2 れんらくさき

ご意見、ご要望、ご苦情はこちらのメールアドレスへお願いします。

 sasada@namikilab.tuat.ac.jp

また、一時配布先は

 http://www.namikilab.tuat.ac.jp/~sasada/

のどこかにあると思います。


なお、本プログラムは、並木研究室とは、あまり関係がありません。

ささだの趣味です。

だけど、上に述べたとおり、研究で利用するかもしれません。

しないかもしれません。


You can’t perform that action at this time.