2010-11-24 74 views
4

我正在使用NSIS脚本为我的Java项目生成Windows安装程序。在这个安装程序中,我想在继续之前检查计算机是否有正确的JRE版本。NSIS:无法从Windows 7中的注册表中获取JRE版本64位

这是我获得的JRE版本的代码片段: -

ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion" 

# display $1 value for testing purpose 
MessageBox MB_OK "Version: $1" 

此代码工作正常的Windows XP,但我不能让它工作在Windows 7 64位...版本数字总是空白。我检查注册表,我很确定路径是正确的,“CurrentVersion”有一个值。

谁能告诉我我在这里做错了什么?

非常感谢!

回答

2

安装程序32位和运行时64位或反之亦然?在这种情况下,您可能会重定向到不同的注册表节点(位于HKLM/Software或HKLM/Software/Wow6432Node内)。

1

NSIS安装程序是一个32位程序,因此它看到注册表的不同部分。这篇知识库文章解释了64位Windows上注册表的不同之处。

http://support.microsoft.com/kb/305097

我不能完全肯定,如果您可以访问您从32位应用程序或不需要的关键。

相关问题