首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Launch4J配置为仅使用32位JVM

将Launch4J配置为仅使用32位JVM
EN

Stack Overflow用户
提问于 2010-04-22 15:26:07
回答 8查看 9K关注 0票数 10

我正在使用Launch4J启动我的Java应用程序,如果系统上存在x64 JRE,Launch4J似乎更喜欢它。

不幸的是,我的应用程序不能在64位的JVM上运行,因为我加载的是32位的动态链接库,这是不可能的,并且会导致UnsatisfiedLinkError。

有没有办法强制/欺骗Launch4J只使用32位JVM?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-11-10 03:19:18

大约一年前,我遇到了这个问题,当时我使用Lauch4J包装了一个需要32位DLL的小Java程序(恰好是swt-win32.dll)。

我发现,如果安装了32位和64位JVM,Launch4J总是偏爱64位JVM。它只能在卸载64位JVM的情况下工作,这显然不是一个实用的解决方案。

我发现没有办法让Launch4J更喜欢(并要求)32位的JVM,在它的论坛上搜索了相当多的东西并发布了问题。

因此,我评估了大量可选的JRE转换器(我使用了这个列表:http://www.excelsior-usa.com/articles/java-to-exe.html)。

我最终选择了Jar2Exe,它是唯一一个具有我需要的功能的。它不是免费的,尽管有一个评估版本,而且我认为它并不昂贵。

希望这能有所帮助!

票数 5
EN

Stack Overflow用户

发布于 2012-09-27 21:06:24

我遇到了完全相同的问题:在64位环境中,如果同时安装了32位和64位JDK/JRE,则此工具始终检测64位版本。我已经对源代码(java + C++)打了补丁,以生成我自己的版本,并重新编译所有代码。我添加了一个复选框,强制在64位windows环境中进行32位JDK/JRE检测。只需加载版本并将其用作原始版本即可。

版本:launch4j-3.0.2-win32_Java32bitsDetection

票数 10
EN

Stack Overflow用户

发布于 2010-11-09 21:06:23

我不知道Launch4J,但你可以通过阅读System.getProperty("os.arch");获取有关32/64的信息。如果您遇到64位系统,您可能会退出安装程序,并显示一条很好的消息,告诉用户安装32位JVM。

您可以使用包装器包装启动代码,以向用户显示一个消息框。

代码语言:javascript
复制
public static void main(String[] args]){

   String architecture = System.getProperty("os.arch");
   // Did not test the return value of this property,,but should work
   if("64".equals(architecture)){
       // Show a dialog, or print a logmessage
       System.exit(-1);
   }
   // Start my APP
   com.something.startup.main(args);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2688932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档