Java 7 Virtual Machine for Learning Purposes. It is written in C++11.
JVMX2 was written by me, Walluce Pinkham.
It uses GNU Classpath, Boost v1.67.0 and wallaroo v0.7.0.
Additionally it uses code from zlib and minizip for handling .jar files and .zip files. Thanks to Dmytro Kurovskyi for the Blogspot article.
I am including the zlib sources to make it easier to compile, but I did not include all the contributions. For comprehensive source code and the latest version, you should go to zlib.
This project was something I wrote because I wanted to challenge myself and because I wanted to learn about Virtual Machines.
This project is public so that anyone who is interested in learning about Virtual Machines can use it as resource.
I didn't want to call it "Yet another JVM". This is the second incarnation of the project, hence the "2" at the end.
When I started the project, Java 7 was the latest version. Because this is only a pet project for learning, I have never felt the need to upgrade.
JVMX2 is a 32 bit application for now, it will run on x64 but it will use a maximum of 2GB of ram. The main reason for this is that I still need to do the work for the Java Native Interface on x64 architectures. Pull requests are welcome.
Not at the moment. My focus has been getting it working on my development machine, which is Windows. There is an OS abstraction layer and everything is meant to be portable, but no porting has happened. Pull requests are welcome.
This project requires the GNU Classpath to run. I am distributing a compiled version of the classpath along with the JVMX2 binary. Please see the license file in the classpath folder for what you can do with GNU Classpath.
You can run JVMX2 -jar alltests.jar, for example, to test the JVM.