digitalgust / miniJVM

Develop iOS Android app in java, Cross platform java virtual machine , the minimal jvm .
MIT License
328 stars 91 forks source link

Question about miniJVM #47

Closed RohitKushvaha01 closed 3 months ago

RohitKushvaha01 commented 3 months ago

Hi,

I am currently developing a Java compiler and runner application for Android, and I am interested in incorporating the miniJVM library into this project.

I have a few questions regarding miniJVM:

  1. Which version(s) of Java does miniJVM support?
  2. Could you provide details about its compatibility with various Java features?

Thank you for your assistance.

Best regards, Rohit

digitalgust commented 3 months ago

miniJVM supports the JDK 1.8 class file format, the syntax features of JDK 1.8, and is compatible with JSR139. The miniJVM is significantly different from J2SE, being fully compatible only with JSR139, which is CLDC 1.1, a minimized JVM for J2ME. On top of this, the miniJVM has extended the J2SE SDK in an arbitrary manner, adhering to the principle of minimizing the miniJVM API as much as possible, similar to JDK 9's modularization of the JDK libraries. If additional features are needed, they can be extended in the form of add-on libraries. In the current implementation of miniJVM, it extends J2SE on top of CLDC 1.1, including modules such as java.lang.reflect, java.lang.invoke, java.lang.ref, java.io, java.net, java.nio, and java.util. These modules have not been fully extended to achieve JDK 1.8 API compatibility, but they do support most of the language features of JDK 1.8. Although these libraries may seem small compared to the standard J2SE 1.8 and might not be compatible with most Java libraries, the primary purpose of this miniJVM is for development on mobile platforms such as iOS and Android. Therefore, the miniJVM has extended its capabilities with a graphics API suitable for mobile platform development, including support for OpenGL and OpenGLES through GLFW and GLFM, and provides a comprehensive set of window component graphics libraries.