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.

npm install node-jvm

In Java land:

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:

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.