-
Enhancement
-
Resolution: Fixed
-
P4
-
None
-
b17
-
windows
Java.dll is delay-loading shell32.dll. Delay-loading should only be used on libraries that might never be used, to avoid loading them when they are not needed.
Java.dll is using the following 2 imports from shell32.dll:
- SHGetKnownFolderPath
- SHGetFolderPathW
These functions are used by getHomeFromShell32, which is always used to populate user.home property early during startup.
A bit of archeology:
- Delay-loading was introduced inJDK-7030249. When it was implemented, user.home was populated with values taken from the Windows registry, and getHomeFromShell32 was only called if the registry-based method failed.
- SinceJDK-6519127, we are always using getHomeFromShell32 to retrieve user.home. We are still delay-loading shell32, and using try/except to handle missing imports on older shell32 versions (Win2000/XP/2003)
The imports are guaranteed to be available on anything more recent than Vista, and we no longer support any of the older Windows versions.
Java.dll is using the following 2 imports from shell32.dll:
- SHGetKnownFolderPath
- SHGetFolderPathW
These functions are used by getHomeFromShell32, which is always used to populate user.home property early during startup.
A bit of archeology:
- Delay-loading was introduced in
- Since
The imports are guaranteed to be available on anything more recent than Vista, and we no longer support any of the older Windows versions.
- relates to
-
JDK-7030249 Eliminate use of LoadLibrary and other clean-ups
-
- Closed
-
-
JDK-6519127 Vista: user.home property not set correctly
-
- Closed
-