如何在 32 位和 64 位系统上 运行 我的 exe Java 应用程序?
How can i run my exe Java application on both 32-bit and 64-bit systems?
我已经在 windows 上用 JDK 64 位编译了我的 java 应用程序,然后我使用 Excelsior Jet 11.3(64 位)打包了 JAR 文件给我一个优雅的 exe 可执行文件可供最终用户使用 运行 windows.
exe 文件在我的机器上运行良好(Windows 7 64 位)但是当我部署到其他 32 位系统时(windows xp & windows 7) , 它不起作用,它显示错误消息说 exe 未被识别为有效的 32 位程序。
我该如何解决这个问题?
How can i solve this?
好吧,标准的分发方式 Java(JAR 文件、WebStart 等)避免了这种情况,因为字节码与平台无关。您故意选择分发 EXE 文件,这些文件本质上是特定于平台的。
如果你想坚持使用 EXE 可以考虑两种选择:
为您需要支持的每个 OS + 硬件平台组合构建和分发不同的 EXE。 (Intel 上的 32 Windows、64 位 Windows、各种 MacOS、Linux,ARM、Solaris 等上的 Linux)
选择一个最小公分母;例如32 位 Windows EXE 应该 可以在 64 位 Windows OS.
上运行
但我建议要么让用户安装 JRE,要么提供安装嵌入式 JRE 的安装程序。
我已经在 windows 上用 JDK 64 位编译了我的 java 应用程序,然后我使用 Excelsior Jet 11.3(64 位)打包了 JAR 文件给我一个优雅的 exe 可执行文件可供最终用户使用 运行 windows.
exe 文件在我的机器上运行良好(Windows 7 64 位)但是当我部署到其他 32 位系统时(windows xp & windows 7) , 它不起作用,它显示错误消息说 exe 未被识别为有效的 32 位程序。
我该如何解决这个问题?
How can i solve this?
好吧,标准的分发方式 Java(JAR 文件、WebStart 等)避免了这种情况,因为字节码与平台无关。您故意选择分发 EXE 文件,这些文件本质上是特定于平台的。
如果你想坚持使用 EXE 可以考虑两种选择:
为您需要支持的每个 OS + 硬件平台组合构建和分发不同的 EXE。 (Intel 上的 32 Windows、64 位 Windows、各种 MacOS、Linux,ARM、Solaris 等上的 Linux)
选择一个最小公分母;例如32 位 Windows EXE 应该 可以在 64 位 Windows OS.
上运行
但我建议要么让用户安装 JRE,要么提供安装嵌入式 JRE 的安装程序。