我正在启动一个带远程调试的应用程序,并在启动时暂停。
当我远程连接到流程时,我在FileNotFoundException
中的未被捕获的ZoneInfo.getTimeZone()
中停止了
这是由行new PatternLayout("[%d{HH:mm:ss}] %-5p: %m%n")
引起的。
显然java没有在 jre / lib / zi 目录中找到 Israel 的时区。
如果您知道如何解决它,我感激不尽。
谢谢。
编辑:问题是时区被定义为“以色列”而Java只有“亚洲/耶路撒冷”时区。
如何在linux机器上更改?
答案 0 :(得分:1)
以色列时区应该是亚洲/耶路撒冷。我在jre / lib / zi下看到它。
我认为您的计划失败可能有两个原因:
您的系统上不存在此文件。
计算机上的时区定义有问题。
所以,
答案 1 :(得分:0)
从我到目前为止发现的这是suse 10 os和java之间的不一致。 os称时区为“(格林威治标准时间+2:00)以色列”而java期望“(GMT + 2:00)耶路撒冷”。
有一种解决方法 - 使用标记-Duser.timezone=Asia/Jerusalem
或-Duser.timezone=GMT+2
启动java。第二种选择对夏令时不利。有关this blog的更多详情。