Basil Bourque Basil Bourque - 6 months ago 37
Java Question

Where is the 'tz' time zone database physically stored in the Oracle JVM for Java 8?

For the Oracle implementation of Java 8 for Mac OS X (and Linux and Windows), where is the

time zone database physically stored within the JDK/JRE?

I would like to find the actual file for inspection.

I have located the JVM on a Mac with El Capitan in
/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk
. But my perusal of its contents did not reveal any 'tz' file that I could recognize.

Answer

In Java 8, the tz file is

jre/lib/tzdb.dat

See also the Timezone Updater Tool. Which says, in part,

For JDK 8 and later family versions:

  • Locate the 'tzdb.dat' file under the modified JAVAHOME/jre/lib directory. This is the newer data file.
  • Locate the 'tzdb.dat.<oldtzdataversion>'; file in the same JAVAHOME/jre/lib directory. This is the replaced, older data file.
  • Obtain the currently installed timezone data version from the command java -jar tzupdater.jar -V.
  • Rename the current 'tzdb.dat' file to something like 'tzdb.dat.<newtzdataversion>', or whatever version was given by the command in step 3. Ensure this name does not conflict with the older data files.
  • Rename the older data file to 'tzdb.dat'.
  • Validate the change in currently active timezone data by executing java -jar tzupdater.jar -V.
  • Restart applications on this JDK/JRE instance as desired.
Comments