go-jdk is OpenJDK-like implementation written in Go with a goal to deliver a great embeddable JVM for Go applications without CGo.
Key features:
- JVM bytecode converted to register-based form
- Loaded code is JIT-compiled right away, no run-time tracing involved
- Efficient
Go->JVM
calls - Efficient
JVM->Go
calls native
Java methods can be written in Go
Note: this project is in its early state.
# Run Java class method (main or any other static method):
go-jdk run -class Foo.class -method helloWorld
# Disassemble Java class file with go-jdk:
go-jdk javap Foo.class
# Print IR representation instead of JVM bytecode:
go-jdk javap -format=ir Foo.class
# Print Java class dependencies:
go-jdk jdeps Foo.class