Just tried running some code on Linux (2.4.21-32.0.1.EL and Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)) and Windows XPSP2 (with Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)) and in both cases, get the following list returned from calling getDeclaredFiel ds() on java.lang.Class Loader via this code snippet:
Field[] fields = loaderClass.get DeclaredFields( );
for (int i = 0; i < fields.length; i++) {
System.out.prin tln("fieldName = " + fieldName);
}
fieldName = private boolean java.lang.Class Loader.initiali zed
fieldName = private java.lang.Class Loader java.lang.Class Loader.parent
fieldName = private java.util.Hasht able java.lang.Class Loader.package2 certs
fieldName = java.security.c ert.Certificate[] java.lang.Class Loader.nocerts
fieldName = private java.util.Vecto r java.lang.Class Loader.classes
fieldName = private java.util.Set java.lang.Class Loader.domains
fieldName = private java.util.HashM ap java.lang.Class Loader.packages
fieldName = private static sun.misc.URLCla ssPath java.lang.Class Loader.bootstra pClassPath
fieldName = private static java.lang.Class Loader java.lang.Class Loader.scl
fieldName = private static boolean java.lang.Class Loader.sclSet
fieldName = private java.security.P rotectionDomain java.lang.Class Loader.defaultD omain
fieldName = private static java.util.Vecto r java.lang.Class Loader.loadedLi braryNames
fieldName = private static java.util.Vecto r java.lang.Class Loader.systemNa tiveLibraries
fieldName = private java.util.Vecto r java.lang.Class Loader.nativeLi braries
fieldName = private static java.util.Stack java.lang.Class Loader.nativeLi braryContext
fieldName = private static java.lang.Strin g[] java.lang.Class Loader.usr_path s
fieldName = private static java.lang.Strin g[] java.lang.Class Loader.sys_path s
fieldName = private boolean java.lang.Class Loader.defaultA ssertionStatus
fieldName = private java.util.Map java.lang.Class Loader.packageA ssertionStatus
fieldName = java.util.Map java.lang.Class Loader.classAss ertionStatus
fieldName = private boolean java.lang.Class Loader.initiali zed
fieldName = private java.lang.Class Loader java.lang.Class Loader.parent
fieldName = private java.util.Hasht able java.lang.Class Loader.package2 certs
fieldName = java.security.c ert.Certificate[] java.lang.Class Loader.nocerts
fieldName = private java.util.Vecto r java.lang.Class Loader.classes
fieldName = private java.util.Set java.lang.Class Loader.domains
fieldName = private java.util.HashM ap java.lang.Class Loader.packages
fieldName = private static sun.misc.URLCla ssPath java.lang.Class Loader.bootstra pClassPath
fieldName = private static java.lang.Class Loader java.lang.Class Loader.scl
fieldName = private static boolean java.lang.Class Loader.sclSet
fieldName = private java.security.P rotectionDomain java.lang.Class Loader.defaultD omain
fieldName = private static java.util.Vecto r java.lang.Class Loader.loadedLi braryNames
fieldName = private static java.util.Vecto r java.lang.Class Loader.systemNa tiveLibraries
fieldName = private java.util.Vecto r java.lang.Class Loader.nativeLi braries
fieldName = private static java.util.Stack java.lang.Class Loader.nativeLi braryContext
fieldName = private static java.lang.Strin g[] java.lang.Class Loader.usr_path s
fieldName = private static java.lang.Strin g[] java.lang.Class Loader.sys_path s
fieldName = private boolean java.lang.Class Loader.defaultA ssertionStatus
fieldName = private java.util.Map java.lang.Class Loader.packageA ssertionStatus
fieldName = java.util.Map java.lang.Class Loader.classAss ertionStatus
When I run the same code on AIX 5.2 with IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc64-64
I get:
FieldName string = static java.lang.Class Loader java.lang.Class Loader.systemCl assLoader
FieldName string = private static java.lang.Class Loader java.lang.Class Loader.applicat ionClassLoader
FieldName string = private static boolean java.lang.Class Loader.initSyst emClassLoader
FieldName string = private long java.lang.Class Loader.vmRef
FieldName string = java.lang.Class Loader java.lang.Class Loader.parent
FieldName string = private java.lang.Objec t java.lang.Class Loader.assertio nLock
FieldName string = private boolean java.lang.Class Loader.defaultA ssertionStatus
FieldName string = private java.util.Map java.lang.Class Loader.packageA ssertionStatus
FieldName string = private java.util.Map java.lang.Class Loader.classAss ertionStatus
FieldName string = private java.util.Hasht able java.lang.Class Loader.genericR epository
FieldName string = private java.util.Hasht able java.lang.Class Loader.annotati onCache
FieldName string = private java.util.Hasht able java.lang.Class Loader.packages
FieldName string = private java.lang.Objec t java.lang.Class Loader.lazyInit Lock
FieldName string = private java.util.Hasht able java.lang.Class Loader.classSig ners
FieldName string = private java.util.Hasht able java.lang.Class Loader.packageS igners
FieldName string = private static java.security.c ert.Certificate[] java.lang.Class Loader.emptyCer tificates
FieldName string = private java.security.P rotectionDomain java.lang.Class Loader.defaultP rotectionDomain
FieldName string = private java.util.Hasht able java.lang.Class Loader.contexts
I'm actually searching for nativeLibraries and SystemNativeLib raries, which is present in the first instance and not the second. Is the IBM Java version organised differently?
Thanks
JW