.NET程序集PE标头有一个32位/ 64位的目标平台,当程序集使用P/Invoke之类的本机互操作时使用它(否则它将是Target=AnyCPU
)。
当Java应用程序通过JNI与某个本地接口建立接口时,Java是否有任何等价物? JNI必须编译为32位或64位。
是否有文章解释Java 64位架构和开发?我找不到一个。
答案 0 :(得分:1)
您可以使用以下方法检测64位:
public static final boolean is64bit = (System.getProperty("sun.arch.data.model").indexOf("64") != -1)
您还可以使用-d32
或-d64
以32位或64位启动Java。
如果对于Web或桌面应用程序,可能有一种方法可以从清单文件中指定它。
答案 1 :(得分:0)
您可以查看系统属性os.arch
:
String osArch = System.getProperty("os.arch");
不幸的是,没有记录此属性的可能值,但您可以在不同的系统上尝试查看它返回的内容(在我的64位系统上使用Sun JDK 6 update 20返回amd64
)。
有关其他可用系统属性的信息,请参阅java.lang.System.getProperties()
的API文档。