2016-05-30 3 views
2

Mac OS X(およびLinuxおよびWindows)のOracle implementation of Java 8については、tz time zone databaseは物理的にJDK/JREに格納されていますか?「tz」タイムゾーンデータベースはJava 8のOracle JVMに物理的に格納されていますか?

私は検査のために実際のファイルを探したいと思います。

エル・キャピタンをMacに搭載したのは/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdkです。しかし、その内容を熟読しても、私が知ることができる「tz」ファイルは明らかにならなかった。

答えて

6

は、Java 8では、TZファイルも

jre/lib/tzdb.dat 

参照Timezone Updater Toolです。これは、部分的には、言うJDK 8以降の家族のバージョンの

  • が変更JAVAHOME/JRE/libディレクトリの下に'tzdb.dat'ファイルを検索します。これは新しいデータファイルです。
  • 'tzdb.dat.<oldtzdataversion>'を見つけます。同じJAVAHOME/jre/libディレクトリにあります。これは置き換えられた古いデータファイルです。
  • コマンドjava -jar tzupdater.jar -Vから現在インストールされているタイムゾーンデータのバージョンを取得します。
  • 現在の'tzdb.dat'ファイルの名前を'tzdb.dat.<newtzdataversion>'のように変更するか、手順3のコマンドで指定したバージョンに変更します。この名前が古いデータファイルと競合しないことを確認します。
  • 古いデータファイルの名前を'tzdb.dat'に変更します。
  • java -jar tzupdater.jar -Vを実行して、現在アクティブなタイムゾーンデータの変更を検証します。
  • 必要に応じて、このJDK/JREインスタンス上のアプリケーションを再起動します。
  • 完全について
+3

、[これは、Oracle JDKのコードである](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/sun/ util/calendar/ZoneInfoFile.java#251)を読み込みます。 – Tunaki