OS name and version determination relies on /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/JavaRuntimeSupport. That is not installed from *.dmg package and can be absent in system.
src/solaris/native/java/lang/java_props_macosx.c:
38 // need dlopen/dlsym trick to avoid pulling in JavaRuntimeSupport before libjava.dylib is loaded
39 static void *getJRSFramework() {
40 static void *jrsFwk = NULL;
41 if (jrsFwk == NULL) {
42 jrsFwk = dlopen("/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/JavaRuntimeSupport", RTLD_LAZY | RTLD_LOCAL);
43 }
44 return jrsFwk;
45 }
So, system properties os.name and os.version become 'Unknown' for that system.
src/solaris/native/java/lang/java_props_macosx.c:
38 // need dlopen/dlsym trick to avoid pulling in JavaRuntimeSupport before libjava.dylib is loaded
39 static void *getJRSFramework() {
40 static void *jrsFwk = NULL;
41 if (jrsFwk == NULL) {
42 jrsFwk = dlopen("/System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/JavaRuntimeSupport", RTLD_LAZY | RTLD_LOCAL);
43 }
44 return jrsFwk;
45 }
So, system properties os.name and os.version become 'Unknown' for that system.
- relates to
-
JDK-7178922 (props) re-visit how os.name is determined on Mac
-
- Closed
-