what is shared objects file?
java, jvm
Solution
This is Class Data Sharing. When running the Sun/Oracle Client HotSpot and sharing enable (either `-Xshare:auto` which is the default, or `-Xshare:on`), the `classes.jsa` file is memory mapped. This file contains a number of classes (listed in the `classlist` file) in internal representation suitable for the exact configuration of the machine running it. The idea is that the classes can be loaded quickly, getting the the JVM up faster. Soon enough a class not covered will be hit, and `rt.jar` will need to be opened and classes loaded conventionally as required.
Reference:
- http://docs.oracle.com/javase/7/docs/technotes/guides/vm/class-data-sharing.html
Problem
When run the jvm in verbose mode it shows files are loading from shared object file as shown below ``` [Loaded java.lang.Object from shared objects file] [Loaded java.io.Serializable from shared objects file] [Loaded java.lang.Comparable from shared objects file] [Loaded java.lang.CharSequence from shared objects file] ``` What is this shared objects files? I thought these are files in rt.jar and it's getting loaded from there; but rt.jar is getting opened in long way down ``` [Loaded java.security.BasicPermissionCollection from shared objects file] [Opened C:\Program Files\Java\jre6\lib\rt.jar] [Loaded sun.misc.JavaSecurityProtectionDomainAccess from C:\Program Files\Java\jre6\lib\rt.jar] [Loaded java.security.ProtectionDomain$2 from C:\Program Files\Java\jre6\lib\rt.jar] ``` any way after extracting the rt.jar i found it has all the classes which were loaded from shared object file.