NOTE: This is only for educatinal purposes, and is not a complete implementation of oracles jvm
It can only parse (almost) all class and jar files in the current state of the implementation.
Not All java features are implemented (obviously).
jvm.exe --path "<path_to_file>.(jar|class)"
Everything needed to implement, is written in the oracle documentation:
Oracle: The Java Virtual Machine Instruction Set
Goals:
- Get an intuitive implementation that can be expanded into something that could potentially run any java program
- This means implementing everything when parsing the class file and also loading jar files
- A easy way of adding the bindings for the java methods
- for example:
System.out.println()
sould be mapped to rust asprintln!()
. To the JVM this function is known asjava/io/PrintStream/println
. A rust macro for this should do the trick
- for example:
- Run Minecraft (lol. not happening)