duhuasong / cappuccinovm Goto Github PK
View Code? Open in Web Editor NEWThis project forked from hogeki/cappuccinovm
JavaVM implemented in JavaScript
This project forked from hogeki/cappuccinovm
JavaVM implemented in JavaScript
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とかのクラウドストレージも使えるか?)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.