Skip to content

kipcode66/CappuccinoVM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

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

No packages published