Go 语言编写的 JVM 虚拟机:jvm.go

y37f 10年前

jvm.go是一个Go语言编写新的JVM(但远远还没有完成)。这个项目的主要目的是学习JVM。因此,该项目的头号目标就是代码的可读性。其基本思路是只实现核心JVM,并使用rt.jar(来自OpenJDK)作为其类库。 GC是直接使用Go的。对我来说,最难的是线程和类加载器。

Go 语言编写的 JVM 虚拟机:jvm.go

开发环境:

  • Mac OS X 10.10.2

  • Java 1.8.0_31

  • Go 1.4

构建方法:

export GOPATH=path/to/jvm.go/  go install jvmgo

创建如下目录结构:

path/to/jvm.go/bin  ├── jvmgo  └── jre/      ├── lib/      ├── rt.jar      ├── currency.data      └── net.properties

执行:

cd path/to/jvm.go/bin  ./jvmgo -cp path/to/jars:path/to/classes HelloWorld

项目主页:http://www.open-open.com/lib/view/home/1426388106246