Java TimeZoneUpdater与java.io.EOFException崩溃

时间:2017-11-29 23:09:27

标签: java timezone

我试过在几台机器上运行它,但总是出错。 我从官方的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版本(并且需要实际升级)时,也会发生这种情况。

请帮忙!

1 个答案:

答案 0 :(得分:2)

它看起来像默认&#34;最新&#34; jar(由工具自动获取)是有问题的。 使用特定的tzdata2017c.tar.gz运行命令可以直接运行。

sudo java -jar tzupdater.jar -v -f -l https://data.iana.org/time-zones/releases/tzdata2017c.tar.gz