繁体   English   中英

Java在64位操作系统上编译32位操作系统运行时问题

[英]Java compiled on 32-bit OS runtime issues on 64-bit OS

运行在32位计算机上编译并在64位计算机上运行的Java应用程序是否存在已知问题?

由32位JDK生成的字节代码与由64位JDK生成的字节代码相同。 如果您遇到仅在64位JVM上出现的问题,那是因为JVM中存在错误并且使用64位JDK不会产生任何差异。

Java背后的想法是程序的字节码版本对于所有平台都是相同的。 这就是为什么你可以在Windows机器上编译并在Linux机器上运行生成的类和jar文件的原因。 我每天都做这样的交叉编译。

这包括JVM是使用32位还是64位。

所以,简单的答案是否定的,没有问题

(更高级的答案是,如果您还使用Java代码引入的非Java本机代码,如DLL等,则很可能需要重新编译该代码)

这取决于您的应用程序,但在正常情况下,从x64计算机上的x86计算机运行代码是没有问题的,反之亦然。

如果使用普通的旧java(没有互操作,不调用本机库),生成的字节码将与机器无关,并且应该在任何已安装的JVM上运行。

除非您明确调用特定于环境的32位本机代码,否则我无法想到。

像Windows这样的操作系统使用WoW64允许32位应用程序在64位系统下运行。 它是一种允许向后兼容的规定。 只要本机库仅依赖于32位或仅依赖于64位库,一切都很好。 JVM负责使用JIT将您的字节代码转换为适当的机器代码,因此不必担心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM