假设我有一个应用程序,它有一个 A.java 类,它只打印一些信息。
那么我的应用程序将在以下情况下运行:
[1] 如果我编译 A
与 jdk1.7.x86
并使用 jre1.7.x64
运行它在64 bit
上windows
机器?
[2] 如果我编译A
与 jdk1.7.x64
并使用 jre1.7.x86
运行它在32 bit
上windows
机器?
[3] 如果我编译A
与 jdk1.7.x86
并使用 jre1.7.x86
运行它在64 bit
上windows
机器?
[4] 如果我编译A
与 jdk1.7.x86
并使用 jre1.7.x64
运行它在64 bit
上Linux
机器?
[5] 如果我编译A
与 jdk1.7.x64
并使用 jre1.7.x86
运行它在32 bit
上Linux
机器?
[6] 如果我编译A
与 jdk1.7.x86
并使用 jre1.7.x86
运行它在64 bit
上Linux
机器?
最佳答案
.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/