我的java应用程序是否必须有x86和x64版本?

我的java应用程序是否必须有x86和x64版本?,java,windows,macos,32bit-64bit,launch4j,Java,Windows,Macos,32bit 64bit,Launch4j,只是一个简单的问题。我想使用launch4j将JRE与Java应用程序捆绑在一起,但到目前为止,似乎出于某种原因,我需要将应用程序捆绑在64位机器和32位机器上,因为当我将应用程序捆绑为64位机器上的.exe时,我在32位机器上收到捆绑的JRE错误,反之亦然。我只是想知道这是否正确,因为我认为32位应用程序仍然可以在64位机器上运行 另外,我还没有测试过,我是OSX的新手,但这同样适用于Mac吗 PS:如果这有什么不同的话,我将把JRE捆绑在JDK中 对不起大家,我刚刚意识到绑定只意味着EXE将

只是一个简单的问题。我想使用launch4j将JRE与Java应用程序捆绑在一起,但到目前为止,似乎出于某种原因,我需要将应用程序捆绑在64位机器和32位机器上,因为当我将应用程序捆绑为64位机器上的.exe时,我在32位机器上收到捆绑的JRE错误,反之亦然。我只是想知道这是否正确,因为我认为32位应用程序仍然可以在64位机器上运行

另外,我还没有测试过,我是OSX的新手,但这同样适用于Mac吗

PS:如果这有什么不同的话,我将把JRE捆绑在JDK中


对不起大家,我刚刚意识到绑定只意味着EXE将在您定义的路径中查找JRE,而不是实际将JRE打包到EXE中(我认为是这样的)!因此,我的问题(可能)与CPU体系结构无关,但因为我在测试时没有复制带有JRE的文件夹。哎呀如果您想知道,我现在只打算添加一个工具,以便在安装程序中自动下载机器上没有的Java。

传统上,您不会因为这个原因捆绑JRE


这也是因为将来你会降低人们的JRE安装级别。

Java类文件是完全不可知的。但是,“生成/绑定的.exe”文件是特定于arch的。(有一些聪明的方法可以使32/64位“兼容”的可执行文件,但它们超出了评论的范围。)Andy问的是有不同版本的JRE。@pst谢谢你的回答,但我并不这么认为helps@HarryJohnston:基本上,如果在32位版本的windows上使用launch4j将我的JAR文件绑定为.EXE和JRE,则在64位版本的windows上会收到“绑定JRE错误”!(抱歉回复太慢)听起来像是launch4j特有的问题。供应商是否有自己的支持站点/论坛?你在那里可能会更走运。不熟悉Launch4J,所以我不知道这是否合理,但我的厚应用程序中包含了当前的32位JRE。但是,我的安装程序仅在它比系统上的JRE(如果有)更新时安装它。我对64位平台上的32位JRE没有任何问题(当然,我也会这样做)。如果你使用mac或Linux PC,它能工作吗?如果它给出一个合理的提示,我想如果你不需要64位的速度,只需要32位系统就可以了。然而,因为我的应用程序将要商业化,我真的不想依赖我的用户安装了java,也不希望他们必须安装它。另外,我不是真的降级,因为它没有安装任何东西,也不会影响用户当前安装的内容。从您当时的回答来看,我想我必须捆绑64位和32位版本是正确的!哦,是的,我需要捆绑JRE,因为我的应用程序通过SSL连接到我的站点,并且由于某些原因,它不能与密钥库正常工作…]@BrianKnoblauch那么,您使用什么来包含当前的32位JRE呢?比尔,我不确定mac的情况,不幸的是,我今晚真的没有时间测试。然而,事情就是这样。我不能只提供32位JRE,因为出于某种原因,它无法在我的64位机器上工作!我在assembly for Windows中编写了自己的初始安装启动器,负责JRE。一旦安装了JRE,我就会启动标准的基于Java的安装程序。*nix&OS X安装与JRE没有任何关系,因为(在我上一次发布时)JRE是捆绑在这些平台上并自动更新的。既然MacOSX不再捆绑JRE,我将不得不重新考虑该平台的安装过程(假设我们继续支持它)。