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

Reply via email to