node-jvm —— 纯node.js 的 JVM 实现

发布时间:2019-06-12 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了node-jvm —— 纯node.js 的 JVM 实现脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

node-jvm,使用纯node.js实现了JVM,太酷了!

node-jvm

例如,下面是一段生成斐波纳契数列并计算生成时间的Java代码:

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.");
    }
}

将它保存为Main.jar,然后加载到node-jvm中:

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]);

构建:

cd examples/fibonacci
make

运行:

./fibonacci.js

输出:

Fibonacci from 1 to 15:
1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
9: 34
10: 55
11: 89
12: 144
13: 233
14: 377
15: 610
time: 106ms
done.

node-jvm在MIT许可下发布,项目主页在此


编撰 SegmentFault

脚本宝典总结

以上是脚本宝典为你收集整理的node-jvm —— 纯node.js 的 JVM 实现全部内容,希望文章能够帮你解决node-jvm —— 纯node.js 的 JVM 实现所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。