Installanywhere:当64位swt遇上32位JVM

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

 

Unable to locate the application's 'main' class. The class 'demos.common4swt.XxxLauncher' must be public and have a 'public static void main(String
[])' method. (LAX)
Unable to Launch Java Application: Unable to locate the application's 'main' class. The class 'demos.common4swt.XxxLauncher'' must be public and hav
e a 'public static void main(String[])' method. (LAX)

 

        因为之前做测试的时候,通过调整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的兼容问题

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值