我最近是Java7 update21JDK,我用netbeans创建了Java应用程序来分发我的jar,我使用Exe4j 4.5.2Jar to exe。
现在,当我使用Exe4j时,它会创建exe,但当我执行它时,它会显示错误消息。
“无法启动JVM。最大堆大小(-Xmx)可能太大,或者防病毒工具或防火墙工具可能会阻止执行。”
经过几次测试后,我发现我以前(在安装JDK7u21之前)来自exe4j的工作应用程序exe文件现在也给出了相同的错误信息。
(我使用的是64位版本的JDK和EXE4j,但编译的exe是32位的。我想要32位的应用程序)
发布于 2013-08-08 02:16:27
Exe4j的工作方式是加载目标JVM的DLL,这要求JVM与可执行包装具有相同的“位数”。所以32位的Exe4j包装器只能加载32位的JVM,而64位的包装器只能加载64位的JVM。
当Exe4j在注册表中搜索JVM时,它将忽略错误位的任何JVM,而只查找它自己的位的JVM。但是,如果您通过设置EXE4J_JAVA_HOME环境变量来强制Exe4j加载特定的JVM,并且这些位不匹配,那么该JVM的加载将失败。
如果您需要32位应用程序(即可执行的wrrapper),则必须安装32位JRE或JDK。另一方面,如果您希望使用64位JVM,则必须提供64位可执行包装器。
https://stackoverflow.com/questions/17036078
复制相似问题