java - java在不同架构上编译和运行时的行为方式

标签 java x86 jvm 64-bit x86-64

假设我有一个应用程序,它有一个 A.java 类,它只打印一些信息。

那么我的应用程序将在以下情况下运行:

[1] 如果我编译 Ajdk1.7.x86并使用 jre1.7.x64 运行它在64 bitwindows机器?

[2] 如果我编译Ajdk1.7.x64并使用 jre1.7.x86 运行它在32 bitwindows机器?

[3] 如果我编译Ajdk1.7.x86并使用 jre1.7.x86 运行它在64 bitwindows机器?

[4] 如果我编译Ajdk1.7.x86并使用 jre1.7.x64 运行它在64 bitLinux机器?

[5] 如果我编译Ajdk1.7.x64并使用 jre1.7.x86 运行它在32 bitLinux机器?

[6] 如果我编译Ajdk1.7.x86并使用 jre1.7.x86 运行它在64 bitLinux机器?

最佳答案

.class可以在任何版本高于.class文件中编译版本的JVM上运行。

例如:

如果java文件是jdk5编译的,所有1.5以上的JVM版本都可以运行该类。

但是如果像这样编译java文件:

javac -source 1.4 Your.java

结果类可以运行在1.4及以上版本的JVM上。

关于java - java在不同架构上编译和运行时的行为方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20342484/

相关文章:

java - 在 Java 中从一种方法调用数组到另一种方法时遇到问题

x86 - 从命令行使用 devenv.exe 并打开解决方案

crash - JpCapWriter使JVM崩溃

java.lang.UnsupportedClassVersionError : com/google/doclava/Doclava : Unsupported major. 次要版本 51.0 android build

linux - 如何在 Linux 中使用 NASM 汇编获取系统时间而不使用从 C 导出的函数?

java - 在Java中,后自增操作到底发生在什么时候呢?

java - 正则表达式检查 URL

java - 重做二十一点游戏

java - JPA 急切未加入

assembly - 如何在汇编中使用 ADC?