Java,64位,JNI-与.NET CLR相比
.NET程序集PE头有一个32位/64位的目标平台,当程序集使用类似本机互操作时使用该平台(否则它将是Java,64位,JNI-与.NET CLR相比,java,64-bit,java-native-interface,Java,64 Bit,Java Native Interface,.NET程序集PE头有一个32位/64位的目标平台,当程序集使用类似本机互操作时使用该平台(否则它将是target=AnyCPU) 当Java应用程序通过与某个本机接口的接口时,Java是否有任何等价物?JNI必须编译为32位或64位 有没有一篇文章解释Java 64位体系结构和开发?我找不到一个。您可以使用以下方法检测64位: public static final boolean is64bit = (System.getProperty("sun.arch.data.model").ind
target=AnyCPU
)
当Java应用程序通过与某个本机接口的接口时,Java是否有任何等价物?JNI必须编译为32位或64位
有没有一篇文章解释Java 64位体系结构和开发?我找不到一个。您可以使用以下方法检测64位:
public static final boolean is64bit = (System.getProperty("sun.arch.data.model").indexOf("64") != -1)
您还可以使用-d32
或-d64
以32位或64位启动Java
如果这适用于web或桌面应用程序,可能有一种方法可以从清单文件中指定它。您可以使用以下方法检测64位:
public static final boolean is64bit = (System.getProperty("sun.arch.data.model").indexOf("64") != -1)
您还可以使用-d32
或-d64
以32位或64位启动Java
如果这适用于web或桌面应用程序,可能有一种方法可以从清单文件中指定它。您可以查看系统属性
os.arch
:
String osArch = System.getProperty("os.arch");
不幸的是,此属性的可能值没有文档记录,但是您可以在不同的系统上试用它,以查看它返回的内容(在我的64位系统上使用Sun JDK 6 update 20,它返回的是amd64
)
有关其他可用的系统属性,请参阅
java.lang.System.getProperties()
的API文档。您可以查看系统属性os.arch
:
String osArch = System.getProperty("os.arch");
不幸的是,此属性的可能值没有文档记录,但是您可以在不同的系统上试用它,以查看它返回的内容(在我的64位系统上使用Sun JDK 6 update 20,它返回的是amd64
)
有关其他可用的系统属性,请参阅
java.lang.System.getProperties()
的API文档。这是一个特定于Sun且未记录的系统属性,它可能无法在其他JVM实现或未来的Oracle java版本上运行。我不想确定我运行的平台。我的问题是,我是否可以标记我的代码与32位Java impl不兼容,这样它就不会在32位Java impl上运行。当然,这可以使用您建议的技术手动实现。这是一个Sun特定的、未记录的系统属性,它可能无法在其他JVM实现或未来的Oracle Java版本上运行。我不想确定我在哪个平台上运行。我的问题是,我是否可以标记我的代码与32位Java impl不兼容,这样它就不会在32位Java impl上运行。当然,这可以通过您建议的技术手动实现