platypusguy / jacobin

A more than minimal JVM written in Go and capable of running Java 21 classes.
http://www.jacobin.org
Mozilla Public License 2.0
683 stars 29 forks source link
golang golang-application java jvm

Go version Workflow

GitHub commit activity

jacobin

A more-than-minimal JVM written in Go.

Status

Intended feature set:

What we've done so far and what we need to do:

Command-line parsing

To do:

Class loading

To do:

Verification, Linking, Preparation, Initialization

To do:

Execution

To do:

Instrumentation

To do:

Garbage Collection

GC is handled by the golang runtime, which has its own GC

Understanding the Code

A detailed roadmap to the code base can be found in the wiki.

If you want to test Jacobin

At present, we're not looking for testers because we know the missing features and we're working on them. Testing, at this point, will likely result in frustration. However, if for your own enjoyment, you still want to try it out, see directions and cautions on our Release Page. (If you want some fun, run your program on Jacobin with the -trace:inst option and watch the executing Java bytecodes whiz by along with the changing contents of the operand stack.)

We expect/hope/trust that by the end of this year, we'll be ready to ask interested users to test Jacobin on real programs and share their feedback with us.

Thanks

The project's home page carries a lengthy note at the bottom that expresses our thanks to vendors and programmers who have made the Jacobin project possible. They are many and we are deeply grateful to them.