我尝试在几台计算机上运行它,但始终会出现错误。我从官方的Oracle页面下载了Tzupdater工具。
我运行此:
sudo java -jar tzupdater.jar -v -f -l
并得到:
Using http://www.iana.org/time-zones/repository/tzdata-latest.tar.gz as source for tzdata bundle.
java.home: /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre
java.vendor: Oracle Corporation
java.version: 1.7.0_80
tzupdater version 2.1.1-b01
JRE tzdata version: tzdata2017c
Downloaded file to /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tz.tmp/tzdata.tar.gz
java.io.EOFException
Exception in thread "main" com.sun.tools.tzupdater.TzRuntimeException: java.io.EOFException
at com.sun.tools.tzupdater.TimezoneUpdater.main(TimezoneUpdater.java:662)
Caused by: java.io.EOFException
at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:264)
at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:254)
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:163)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:78)
at com.sun.tools.tzupdater.ExternalModule.extractFiles(ExternalModule.java:92)
at com.sun.tools.tzupdater.TimezoneUpdater.run(TimezoneUpdater.java:209)
at com.sun.tools.tzupdater.TimezoneUpdater.main(TimezoneUpdater.java:643)
我可能会注意到,当机器没有最新的tzdata版本(并且需要实际升级)时,这也会发生。
请帮助!
看起来像默认的"最新" jar(工具自动获取)是有问题的。使用特定的tzdata2017c.tar.gz直接运行该命令,直接工作正常。
sudo java -jar tzupdater.jar -v -f -l https://data.iana.org/time-zones/releases/tzdata2017c.tar.gz