启动java时出现FileNotFoundException

时间:2010-12-23 10:00:06

标签: java linux timezone

我正在启动一个带远程调试的应用程序,并在启动时暂停。
当我远程连接到流程时,我在FileNotFoundException中的未被捕获的ZoneInfo.getTimeZone()中停止了 这是由行new PatternLayout("[%d{HH:mm:ss}] %-5p: %m%n")引起的。
显然java没有在 jre / lib / zi 目录中找到 Israel 的时区。
如果您知道如何解决它,我感激不尽。 谢谢。

编辑:问题是时区被定义为“以色列”而Java只有“亚洲/耶路撒冷”时区。
如何在linux机器上更改?

2 个答案:

答案 0 :(得分:1)

以色列时区应该是亚洲/耶路撒冷。我在jre / lib / zi下看到它。

我认为您的计划失败可能有两个原因:

  • 您的系统上不存在此文件。

  • 计算机上的时区定义有问题。

所以,

  • 检查耶路撒冷文件是否存在
  • 检查TimeZone.getDefault()返回的默认时区以及控制面板上配置的内容。

答案 1 :(得分:0)

从我到目前为止发现的这是suse 10 os和java之间的不一致。 os称时区为“(格林威治标准时间+2:00)以色列”而java期望“(GMT + 2:00)耶路撒冷”。
有一种解决方法 - 使用标记-Duser.timezone=Asia/Jerusalem-Duser.timezone=GMT+2启动java。第二种选择对夏令时不利。有关this blog的更多详情。