node-jvm Java虚拟机实现

纯 Node.js 实现的 Java 虚拟机,还挺有意思的。node-jvm 就是个能在 Node 环境里跑 Java 字节码的项目,换句话说,你不用开 JDK,不用配置环境变量,直接用 Node 跑 Java 代码,嗯,还挺适合拿来做些实验或做动态类加载的研究。

Java 的递归函数直接拿来跑,比如:

public static long fib(int n) {
  if (n <= 1) return n;
  return fib(n - 1) + fib(n - 2);
}

放进 node-jvm 执行,居然也能跑。速度比不了真 JVM,但玩起来轻便,尤其是调试某些类加载逻辑时,挺方便的。

项目结构还比较清晰,关键类也没那么多,熟悉 Node 的话,看懂源码问题不大。JS 写 Java 虚拟机,多少有点黑魔法的味道,研究下类加载、方法区之类的概念挺直观。

哦对了,有兴趣可以看看这个关于 JVM 的基础,还有个 深入解析 Java 架构 的文章,跟 node-jvm 搭配着看,更有感觉。

如果你想用 Node 环境下动态 Java 字节码,或者搞点 Bytecode 层面的实验,node-jvm 还挺适合。别指望它能跑大项目,但拿来练手、搞搞嵌入式调度,够用了。

js中的java虚拟机
node-jvm:纯node.js中的Java虚拟机 预估大小:112个文件
file
Nested.java 281B
file
Main.java 651B
file
Main.java 605B
file
Main.java 149B
file
Clazz.java 159B
file
Main.java 605B
file
Main.java 465B
file
Main.java 591B
file
MyOut.java 172B
file
Main.java 293B
file
Dog.java 189B
file
Main.java 388B
file
Dog.java 889B
file
Main.java 529B
file
Main.java 357B
file
Main.java 366B
file
Dog.java 212B
file
Main.java 174B
file
Main.java 1012B
file
.gitignore 13B
zip 文件大小:56.94KB