Java虚拟机有哪些优秀的开源实现?

时间:2009-10-25 19:54:37

标签: java open-source jvm

我正在尝试编写自己的JVM。你能指点我一些现有的开源实现吗? 感谢。

6 个答案:

答案 0 :(得分:10)

答案 1 :(得分:6)

Hotspot(GPL,作者Sun)

Harmony(Apache,也是Android的Dalvik VM的基础)

JamVM

CLDC - Connected Limited Device Configuration(Sun再次)这个不是真正的开源,但源代码可用。

答案 2 :(得分:3)

我不认为,openjdk源代码是学习编写VM的一个很好的起点。它太大了,太具体了。有类似的替代方案:

  1. 据说,Parrot VM能够正常运行Java Bytecode。 Parrot VM已经注册。
  2. Projekt shark(在openjdk项目中为零)是OpenJDK的一个可移植的“fork”,没有汇编源。据我所知,它使用LLVM。在http://gbenson.net/上有关于如何构建调试的信息。
  3. LLVM项目有一个不完整的JAVA前端。
  4. Sun正在重写JAVA本身的JVM。它被称为Maxine,它被认为是研究。有关详细信息,请参阅http://wikis.sun.com/display/MaxineVM/Home
  5. 关于替代JVM实现有一个很好的Wikipedia entry。其中一些已经在这里提到过,有些则没有。

答案 3 :(得分:2)

以下是两个玩具JVM:

答案 4 :(得分:0)

绝对使用rq提供的源代码,但是如果要编写JVM,请考虑使用register based implementation。正如本文所描述的那样,基于寄存器的机器确实会导致指令臃肿,但应该更快。由于似乎没有任何基于寄存器的JVM实现,因此从头开始编写一个额外的奖励。

答案 5 :(得分:0)

如果你喜欢一些更具异国情调的东西。高级IKVM是一个基于mono / .NET CLR构建的开源JVM。