古老的榕树

Java 8 在 Ubuntu 14.04 上的时间偏差

发表 2016-02-17 18:17 阅读(1958)

最近升级 Java 到 8;不幸遇到一个问题:时间比真实时间晚点了2个小时,折腾了很久,终于找到问题了。网络上有的说晚了 8 小时,我这里确实 2 小时;可能服务位置的差异。


问题的根源是 Java 8 的默认时区的问题,需要给 jvm 显性指定 自己的时区,以下配置代码只适合 Linux 的:


export JAVA_HOME=/usr/java/jdk1.8.0_72
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_OPTS="-server -Xmx1024m -Xms1024m -XX:MaxPermSize=128m -Duser.timezone=GMT+08"



关键代码在最后一行的  -Duser.timezone=GMT+08


另外 export JAVA_OPTS 的写法,网络很多种,有没有双引号,有的 -server 写成 -JAVA_OPTS,我都一一撞上了,都没有成功,为此以为   -Duser.timezone=GMT+08 设置无效,另行折腾,甚至看了Java 8 的默认时区相关的源码,大费周折,实在浪费了时间。

Donate

如果文章对您有帮助,请使用手机支付宝扫描二维码,捐赠X元,作者离不开读者的支持!