转自:http://blog.csdn.net/Nonetracer/article/details/5718796
俗话说,祸不单行。刚刚解决数据库连接慢的问题又遇到了时间不对的问题。用户的测试机安装的win7,测试时发现时间总是差8个小时。立马想到时区不对,查看控制面板里时区设置(顺便BS一下win7,控制面板就不能学xp有个经典模式吗?什么都找不到),发现时区正确,看来不是时区设置问题。
使用第二套方案。在win7下装jdk1.5、eclipse,输出系统时区和时间。果然,输出时区为"GMT",时间差8小时。那就说明是jdk1.5在win7下取不到正确的时区。为了验证我的假设,又下了最新的jdk1.6,输出正常。
问题找到了,接下来就要解决。为什么xp下能取到时区儿而win7下取不到呢?搜索一下,发现SUN提到了这个bug,而且发布了一个tzupdater,按照使用说明下载、运行,再试,还是不行。是我英文差使用说明理解错误吗-_-!我把updater的地址贴出来,如果哪有朋友用它运行成功了给个回话,我向您请教。(http://java.sun.com/javase/tzupdater_README.html)
虽然用updater没有成功,但通过他的使用说明还是发现了一些东东。在/jdk1.5.0_04/jre/lib目录下有个tzmappings文件。用记事本打开,里面记录了所有地区的时区,格式为“China Standard Time:-1,75::Asia/Shanghai:”,看到它,很自然的联想到注册表。于是,打开注册表时区的节点[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Time Zones/China Standard Time]。有一个键值似曾相识,“MapID=-1,75”,这不就是tzmappings文件中记录的那个值吗。再看看其他时区,与那个文件中的值都是相同的。会不会Java是通过这个键值获取的时区?打开win7下注册表相同的节点,惊喜出现了,里面竟然没有MapID键,与xp对比了一下,少了MapID、Index键,多了MUI_Display、MUI_Dlt、MUI_Std,其他的不管,先把MapID键加上再说。加上后,再运行我那个取系统时间的测试程序,OK!问题解决!
好了,看来就是这个原因,二话不说,从xp下导出全部注册表时区节点,为了保险起见,只保留MapID键,然后全部倒入win7注册表,这样,jdk1.5读取时间一切完好了!
分享到:
相关推荐
标题中的问题涉及到Windows 7操作系统...通过上述步骤,应该能有效地解决在Windows 7下使用JDK 1.5时遇到的时间差8小时的问题。如果问题依然存在,可能需要进一步排查其他可能的原因,如网络同步设置、系统服务状态等。
标题:“jdk1.5 windows版本 64位” 描述:“jdk1.5 windows版本 64位,Java开发依赖环境” 标签:“windows” 在这个主题中,我们聚焦的是Oracle JDK 1.5(也被称为Java Development Kit,简称JDK)在Windows...
然而,由于JDK1.5已不再受官方支持,可能存在安全风险和性能问题。因此,在生产环境中使用时,强烈建议升级到更现代的JDK版本,以获得更好的性能、安全性和功能支持。同时,对于学习和研究目的,理解老版本的JDK可以...
Java Development Kit(JDK)是...而64位Windows版的JDK1.5,则是针对Windows用户的一种优化选择,满足了开发者在64位环境下的需求。文件"jdk-1_5_0_17-windows-x64.exe"就是用于安装这个特定版本的JDK的可执行文件。
在JDK1.5中,开发者可以在方法签名中使用省略号(...)表示可变参数。这允许方法接受任意数量的相同类型的参数,如: ```java public void printNumbers(int... nums) { // 代码块 } ``` 这个方法可以接收一个或多...
jdk1.5.exe jdk1.5 jdk1.5下载
泛型是JDK1.5最重要的特性之一,它允许在类、接口和方法声明中使用类型参数,以实现数据类型的参数化。泛型提高了代码的类型安全性和可读性,减少了类型转换的需要,并允许编译器检查类型错误。 2. **自动装箱与...
本文将深入探讨Linux下JDK1.5的相关知识点,帮助用户更好地理解和使用这个版本的Java开发环境。 首先,安装JDK1.5在Linux系统中通常涉及以下步骤: 1. **下载**:你需要从Oracle官方网站或者第三方镜像站点下载...
绝版jdk1.5,非常不错的资源。用起来很好。是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,...
此外,JDK1.5还引入了变长参数(Varargs)功能,允许在方法声明中使用三个点(...)表示可变长度的参数列表。这使得创建接受任意数量相同类型参数的方法变得更加简单。 在类型系统方面,JDK1.5引入了增强的for循环...
标题中的"window JDK1.5 32位 绿色免安装版"指的是适用于Windows操作系统的32位版本的JDK 1.5,它是一个便携式版本,无需正式安装即可使用。这种绿色免安装版通常是为了方便开发者在不同机器间快速切换工作环境,或...
这个压缩包包含了三个不同版本的JDK:JDK 1.5、JDK 1.6和JDK 1.8,其中1.5和1.6是早期版本,而1.8是最流行且广泛使用的版本之一。 **JDK 1.5(也称为Java 5.0)** JDK 1.5在2004年发布,引入了许多重要的新特性,如...
前几天上传过这个资源,因为是在jdk1.6上开发的, 测试了一下在jdk1.5上不能用, 今天重新用jdk1.5编译了一下, 这个是可以支持jdk1.5+的 将 pu-xlscommon-1.0.0.jar 添加到工程的 /lib 目录下 用法在附件中 XlsTest....
在使用JDK 1.5进行开发时,开发者可以享受到这些新特性的便利,提高代码质量和开发效率。然而,由于该版本已经比较老,可能不支持现代的Java特性,对于新项目,推荐使用更新的JDK版本。对于旧项目,迁移至更高版本的...
JDK1.5,也被称为JDK 5.0,是一个重要的版本,它引入了许多创新特性,显著提升了开发效率和代码质量。这个版本在2004年发布,是Java发展历程中的一个里程碑。 JDK1.5的主要新特性包括: 1. **泛型(Generics)**:...
这个文档对于学习和使用JDK1.5的开发者来说是一份非常重要的参考资料,可以帮助他们理解和利用JDK1.5的各种功能,编写出高效、可靠的Java程序。 总之,JDK1.5是Java发展历程中的一个里程碑,它的多项创新特性为Java...
JDK1.5,也被称为Java SE 5.0,是Oracle公司于2004年发布的一个重大更新,带来了许多重要的新特性、改进和优化。以下是对这个版本的一些关键知识点的详细解释: 1. **泛型(Generics)**:JDK1.5引入了泛型,使得...
Java Development Kit(JDK)是Java编程语言的核心组件,它包含了一个完整的Java运行环境(JRE)以及开发...尽管随着时间的推移,更高级别的JDK版本不断发布,但JDK 1.5在某些特定场景下仍然有着其独特的价值和应用。
这个“JDK1.5中文帮助文档”是官方英文文档的中文译本,为中文用户提供了详细的解释和易于理解的指导,旨在帮助开发者更好地理解和利用JDK 1.5的新功能。** 1. **泛型(Generics)** 泛型是JDK 1.5引入的最显著的...
Java Development Kit(JDK)是Java编程语言的软件开发工具包,它包含了编译、调试、文档生成等...如果你习惯了使用JDK 1.7,但对JDK 1.5有特殊的依赖或偏好,那么了解和掌握这个版本的特点和使用技巧是非常有价值的。