node-jvm

node-jvm (GitHub: YaroslavGaponov/node-jvm, License: MIT) 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.

Post navigation

Leave a comment

Leave a Reply

Your email address will not be published.