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