现在的位置: 首页 > 综合 > 正文

关于jdic打包后调用浏览器的问题

2013年09月16日 ⁄ 综合 ⁄ 共 1369字 ⁄ 字号 评论关闭

      最近做项目使用了jdic调用浏览器打开网页的功能,代码很简单,网上都可以找的到,我重点说说在打包后如何正常调用jdic的浏览器功能。

     我开发使用的是eclipse。在eclipse上可以正常运行jdic的功能,可是打包后其他功能正常。只有jdic的浏览器出不来,很是郁闷,刚开始也在网上找了很多资料,但是都莫衷一是,于是我想,既然在eclipse下可以正常运行,那么打包后也应该才对啊,因为我使用的是同样的代码和jdk。在测试了无数次之后,终于我发现是因为我的安装路径的问题,我使用的是installAnywhere打包的(简单破解的)在安装的时候会弹出来说未授权,很烦人,但是不影响使用。我的安装路径是D:/在线浏览器。用过installAnywhere都知道安装的时候会在安装路径下生产一个xxx..lax ,在这个文件里面有一个属性lax.nl.current.vm,(我安装后是lax.nl.current.vm=c:///u7231/u5361//jre//bin//java.exe)就是指定当前程序使用的jvm。因为我的安装路径是带有中文的,所以在生成这个文件的时候他会把中文转换成unicode编码。问题除原来了。我的程序使用的是jdk1.6,而installAnywhere在运行的时候必须在目标机器上有jvm,为了保证用户可以正常安装,我在打包的时候选择将jvm打包进去,因为我在安装的时候还指定了程序的运行jvm,所以安装到一半的时候他会问,是否用指定的jvm替换installAnywhere的jvm中的文件,当然选是,否则我的程序怎么运行。安装完后就出现其他功能正常,而我的jdic不正常。解决办法是打包的时候让jvm不要打包进安装程序,这样程序可以正常运行,但是在没有安装jvm的机子上如何运行安装程序呢,解决办法是将打包程序先安装在自己的机子上,然后将安装好的程序用其他程序再次打包。二这个打包程序其实就做了一件复制的红做,这个时候的问题是lax.nl.current.vm指定的是我安装路径的jvm。如果放在别人的机子上如何运行呢。坑定运行部起来,因为找不到jvm,除非他的安装路径和我的完全一致,现在的解决办法是。我的jvm是放在安装目录的根目录下的,所以将lax.nl.current.vm改成lax.nl.current.vm=jre//bin//java.exe。这里需要注意的问题是我这里使用了相对路径。他会自己寻址。但是如果你的安装路径中出现了中文,那么恭喜你,一定出来,因为他不认识中文,所以如果二次打包的话必须将文件安装在不带中文的路径下。要么就是在你的启动函数的一开始,写一个方法,将你的安装路劲转换成unicode编码然后写回到lax.nl.current.vm这里。是有点麻烦,但是管用。

 

总结一下打包后jdic不能正常运行

1. 如果jre使用了相对路径,一定是安装路径或者运行路径带中文

2. jre使用了绝对路径,一定是你的jre被别的文件部分替换或者全部替换。

保证jre的完整性事jdic正常运行的超要条件(jre路径的完整和jre文件的完整)

3. 使用jdic的时候不需要将任何东西复制到windows的system32下、(在jdk1.6下),只需要几个jar包

 

 

 

抱歉!评论已关闭.