Hello, I am trying to implement my own virtual machine and making use of the rt.jar .
I am following the language and vm specification and currently have not come across formalities that require implementation/prefill of java.lang.System*props. When the IntegerCache is being initialized, it calls getSavedProperty which doesn't like savedProps.isEmpty() at all (jdk/src/share/classes/sun/misc/VM.java:255) and throws the exception java.lang.IllegalStateException. 1) What are the minimal properties that have to be initialized for the runtime to be functioning? I found sun.misc.Version.init(), but is there any specification of what the bare minimum would be? 2) There is a function initializeSystemClass() (jdk/src/share/classes/java/lang/System.java:1152) that calls initProperties(props). This will be called by the JVM at > hotspot/src/share/vm/runtime/thread.cpp:1048: > JavaCalls::call_static(&result, klass, > vmSymbols::initializeSystemClass_name(), Shouldn't it be part of the JVM Specification to call this initializeSystemClass on thread setup then, if at all it wants to be able to run the rt.jar? Thanks, Max PS : talking about 1.8.0_91 (On a side-note, there is activity around moving sun.misc.VM to jdk.internal.misc for JEP 260/JDK9, but which doesn't change above mentioned problems) [1] http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-January/037853.html