首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

Installanywhere:当64位swt赶上32位JVM

2012-06-29 
Installanywhere:当64位swt遇上32位JVM最近给产品打installer时,能够成功通过installanywhere生成安装包,

Installanywhere:当64位swt遇上32位JVM

        最近给产品打installer时,能够成功通过installanywhere生成安装包,但安装时,不能成功运行,切换到console模式,再次打成安装包,安装,运行,报以下错误:

 

 

        因为之前做测试的时候,通过调整lax.class.path,能够成功地打成安装包并且成功运行。做测试时是在真实机子做测试:win7, jdk6-64bit, installanywhere8未破解版本(公司不允许使用破解、盗版之类的软件,试用期过了之后,不能在相同的机子重复安装,用一些软件清除了注册表之后还是不能安装,所以这几天的工作是在虚拟机进行,环境是xp, jdk6-32bit, installanywhere8未破解版本)。

 

        根据前面的测试,怀疑的重点就在lax.class.path,不厌其烦地反复修改、打包、安装测试,但都是无功而疾。又把安装包从虚拟机拷贝到真实机子安装,还是不行,实在没辙了。打开安装目录的bin目录下,看到有一个xxx.lax文件,用editplus打开,手工修改lax.class.path,直接运行,还是不行。接着仔细地看一遍该文件,发现有一个lax.nl.current.vm的属性,当前指向jdk1.5,就在想,如果改为更高版本的jdk会怎样呢。因为当前机子的jdk1.6是64位的,改了之后,就可以运行了,看来还真是JDK不兼容导致了,后来发现,产品用的SWT是64位的。

  

        问题虽然得到解决了,但是,为什么installanywhere的那个报错提示,那么让人费解呢,为什么不直接报64bit的SWT与32bit的JVM不兼容呢?

 

        产品用的SWT(SWT对应的功能是新功能)是64位的,发现64位的SWT只能是64位的JVM上运行,32位的SWT也只能在32位的JVM上运行,而且产品在安装时,用户还可以手工选择JVM,接下来,处理SWT与JVM的兼容问题

 

热点排行