Go 语言编写的 JVM 虚拟机:jvm.go
y37f
10年前
jvm.go是一个Go语言编写新的JVM(但远远还没有完成)。这个项目的主要目的是学习JVM。因此,该项目的头号目标就是代码的可读性。其基本思路是只实现核心JVM,并使用rt.jar(来自OpenJDK)作为其类库。 GC是直接使用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