{"repo":"platypusguy/jacobin","free":true,"listed":false,"github":"https://github.com/platypusguy/jacobin","clone":"git clone https://github.com/platypusguy/jacobin.git","description":"A more than minimal JVM written in Go and capable of running Java 21 classes.","language":"Go","stars":753,"topics":["jvm","golang-application","golang","java"],"license":"MPL-2.0","category":"cli-tools","readme_excerpt":"jacobin A more-than-minimal JVM written in Go. Status Intended feature set: Runs Java 21 classes, but... No JNI (Oracle intends to replace it; see JEP 389) No security manager (Oracle intends to remove it; see JEP 411) No JIT Somewhat less stringent bytecode verification Does not enforce sealed classes What we've done so far and what we need to do: Command-line parsing Gets options from the three environment variables. Details here Parses the command line; identify JVM options and application options; handles complex class paths Responds to most options listed in the java -help output To do : Handling @files (which contain command-line options) Class loading Correctly reads and parses most classes Extracts bytecode and parameters needed for execution Automated pre-loading of core Java classes ( Object , etc.) java. , javax. , jdk. , sun. classes are loaded from the JAVA HOME directory (i.e., from JDK binaries) Handles JAR files Handles interfaces To do : Handle more-complex classes (called via method handles, etc.) Handle inner classes Verification, Linking, Preparation, Initialization Performs format check of class file. Performs preparation of a loaded class file. Linking and initialization -- minimally and only as needed at execution time To do: Verification Robust linking and initialization Execution Executes all bytecodes except INVOKEDYNAMIC, including one- and multi-dimensional arrays Static initialization blocks Throwing and catching exceptions Calls to superclasses R","default_branch":null,"files":null,"tree":[],"storefront":"/r/platypusguy","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/platypusguy/jacobin/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}