Java 在64位Windows上编译的JAR不会在32位Windows上运行

Java 在64位Windows上编译的JAR不会在32位Windows上运行,java,windows,jar,32bit-64bit,Java,Windows,Jar,32bit 64bit,我刚刚在64位Windows7笔记本电脑上使用Eclipse开发并导出了一个可运行的JAR。我刚刚在其他电脑上试用过,当你双击它时,它可以在另一台Windows7x64笔记本电脑上运行。然而,在32位笔记本电脑上,我只有在使用java-jar“C:\Name of jar.jar”从命令行运行它时才会启动它,但不会抛出任何错误 此外,如果我使用命令javaw“C:\Name Of Jar.Jar”我会收到一条错误消息说“找不到主类C:\Name Of Jar.Jar.Program将退出。” 有

我刚刚在64位Windows7笔记本电脑上使用Eclipse开发并导出了一个可运行的JAR。我刚刚在其他电脑上试用过,当你双击它时,它可以在另一台Windows7x64笔记本电脑上运行。然而,在32位笔记本电脑上,我只有在使用
java-jar“C:\Name of jar.jar”
从命令行运行它时才会启动它,但不会抛出任何错误

此外,如果我使用命令
javaw“C:\Name Of Jar.Jar”
我会收到一条错误消息说“找不到主类C:\Name Of Jar.Jar.Program将退出。”


有人知道为什么,以及如何修复它吗?提前感谢

您是用JDK1.7构建的吗? 也许你还没有在电脑上安装JRE7,你试着运行它。
这是我多次遇到的一个奇怪的bug。

在32位机器上右键单击->在JAR上打开。如果列出了一个JRE,您可以用它打开,并使其成为运行的默认程序


我认为这与32位或64位操作系统无关。

试试
javaw-jar-jar\u name
。我认为这可能会起作用。

Java将运行相同的代码,而不考虑比特数。试试java-jar-thejar.jar包.main类@PeterLawrey哦,好吧,我没意识到。那么,提供两种不同的JVM有什么意义呢?无论如何,我不是在寻找命令行解决方案——我需要能够使JAR可以双击。无论如何谢谢你!64位版本使用更多寄存器,并且可以使用更多内存。32位操作系统需要32位版本。@PeterLawrey好的,谢谢。但是使用64位JDK编译的JAR将在32位JVM上运行?无论您使用32位还是64位,它都将创建相同的JAR,将在32位或64位上运行。啊哈-我现在觉得相当愚蠢。我没有意识到32位笔记本电脑没有安装JRE 7;我甚至没有意识到我的笔记本电脑上没有JRE 6。我已经在我的笔记本电脑上安装了JRE 6(32位)并再次导出了可执行JAR,现在它可以在我所有的笔记本电脑上完美地工作了。这对我来说似乎也快了一点。这正是我发现问题时的反应。Oracle在发布1.7时出现了此bug;):)啊。我确实认为,即使应用程序是使用1.7编译的,只要它只使用1.6中可用的方法,它也应该只使用1.6。1.6和1.5等版本也是如此。是我弄错了,还是这是1.7中的错误?这确实是它过去的工作方式。通常,这些新功能在字节码中与旧版本兼容。。。我不记得我是否在Oracle bugreport中读过这篇文章,但在我看来,这应该是运行时的一个正式错误。(1.7 ofc)是的,这使得它可以毫无错误地执行,但正如我之前所说,我并不是真的在寻找命令行解决方案——我需要修复我的可执行JAR。我现在已经解决了,不过还是要谢谢你。你说得对。我不认为它是在64位系统上编译/导出的这一事实有什么不同。不幸的是,您的解决方案没有帮助-我的问题是因为我测试的32位上没有JRE 7。我现在把一切都修好了,不过还是谢谢你