forked from hogeki/CappuccinoVM
-
Notifications
You must be signed in to change notification settings - Fork 0
kipcode66/CappuccinoVM
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
CappuccinoVMはJavaScriptによって実装されたJavaVirtualMachineです。プラグインに頼らずにJavaScriptだけで全部実装しているのがJavaアプレットとの違いです。最近のバージョンのChromeかFirefoxかSafariなら動くと思います(Chromeだと速いです)。 使い方: とりあえずHelloWorldしてみましょう。 //HeloWorld.java class HelloWorld { public static void main(Strings args[]) { System.out.println("Hello World!"); } } これをコンパイルしてHelloWorld.class作ります。 $javac HelloWorld.java HelloWorld.classをcappuccino_vm.jsといっしょにWebサーバーで公開されているディレクトリに置きます。 そしてそのディレクトリで以下のようなhtmlを作ります。 <!doctype html> <html> <head> <meta charset="utf-8"> <title>CappuccinoVM test</title> <script type="text/javascript" src="cappuccino_vm.js"></script> <script type="text/javascript"> function VMStart() { CappuccinoVM.startMain('HelloWorld'); } </script> </head> <body onload="VMStart()"> <body> </html> このページをWebブラウザで開くと…何も表示されません。 とりあえず今の実装ではconsole.logで出力しているので、ブラウザのコンソールを確認してください(Chromeではツール->JavaScriptコンソール)。 仕組み: CappuccinoVM.startMain('HelloWorld'); これが実行されるとCappuccinoVMはHelloWorld.classをサーバーからダウンロードしてきます。そしてクラスファイルを解析し、JavaバイトコードをJavaScritpに変換して実行します。いわゆるJITコンパイラです。 現在の進捗: JavaVMの命令の半分程度を実装しています。簡単な処理を行って結果をSystem.out.printlnすることはできます。 今後実装したいと思っているもの: マルチスレッド 例外処理 Swing WebStorageを使った仮想ファイルシステムのようなもの(dropboxとかのクラウドストレージも使えるか?)
About
JavaVM implemented in JavaScript
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published