node-jvm is a complete
JVM virtual machine written in JavaScript written by Yaroslav Gaponov
during his preparation for a Java SE 7 exam.
1
|
npm install node-jvm |
In Java land:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class Main { public static long fib(int n) { if (n <= 1) return n; return fib(n-1) + fib(n-2); } public static void main(String[] args) { if (args.length == 0) { System.out.print( "help: java Main.class {Number}" ); return ; } int N = Integer.parseInt(args[0]); long start = System.currentTimeMillis(); System.out.format( "Fibonacci from 1 to %s:n" , N); for (int i = 1; i <= N; i++) { System.out.println(i + ": " + fib(i)); } long stop = System.currentTimeMillis(); System.out.println( "time: " + (stop - start) + "ms" ); System.out.println( "done." ); } } |
In JavaScript land:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var JVM = require( "node-jvm" ); var jvm = new JVM(); jvm.setLogLevel(7); var entryPointClassName = jvm.loadJarFile( "./Main.jar" ); jvm.setEntryPointClassName(entryPointClassName); jvm.on( "exit" , function (code) { process.exit(code); }); jvm.run([15]); |
There are plenty of examples on the
github page.