Java 检查我们使用的是Eclipse 32位版本还是64位版本

Java 检查我们使用的是Eclipse 32位版本还是64位版本,java,eclipse,bit,Java,Eclipse,Bit,我想在java程序中检查底层eclipse是32位还是64位。 我尝试过System.getProperty(os.arch/orgi.platform)等,但没有给出正确的结果 另外,我已经在64位Windows7上安装了32位和64位eclipse 主要问题是:我使用org.eclipse.swt.internal.ole.win32.COM类方法得到一个指针,该类方法以32位返回int,以64位返回long。我希望独立于基础eclipse版本来处理此问题。打开eclipse安装目录中的文件

我想在java程序中检查底层eclipse是32位还是64位。 我尝试过System.getProperty(os.arch/orgi.platform)等,但没有给出正确的结果

另外,我已经在64位Windows7上安装了32位和64位eclipse


主要问题是:我使用org.eclipse.swt.internal.ole.win32.COM类方法得到一个指针,该类方法以32位返回int,以64位返回long。我希望独立于基础eclipse版本来处理此问题。

打开eclipse安装目录中的文件
eclipse.ini
,并观察第四行-在我的例子中:

plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519
x86_64
部分对应的是64位版本

对于32位版本,它只会说
x86
,下面是最近的Eclipse Neon(4.6.1)的一个示例:


打开eclipse安装目录中的文件
eclipse.ini
,观察第4行-在我的例子中:

plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519
x86_64
部分对应的是64位版本

对于32位版本,它只会说
x86
,下面是最近的Eclipse Neon(4.6.1)的一个示例:


在Eclipse插件中使用
Platform.getOSArch()
(平台是
org.Eclipse.core.runtime.Platform
)。平台还为各种架构提供了大量的
ARCH_xxx
常量

在Eclipse插件中使用
Platform.getOSArch()
(平台是
org.Eclipse.core.runtime.Platform
)。平台还为各种架构提供了大量的
ARCH_xxx
常量

谢谢,但是我想签入java程序,这样我的代码就可以在32位和64位EclipseThaks上工作,但是我想签入java程序,这样我的代码就可以在32位和64位EclipseThaks上工作。我可以在nornal java程序中使用它,它不是插件代码吗?不,这只是Eclipse插件。方法是COM.moveMemory(int,TCHAR,int)32位和64位的COM.moveMemory(long、TCHAR、int)。我有int/long变量。现在我想让我的代码调用相应的方法。这些类是内部的,不是SWT API的一部分,因此不应该直接使用。这个场景可以与任何方法而不是这些内部API一起使用。在这种通用情况下,如何处理这个问题?我不能在非插件代码的nornal java程序中使用它吗?不,这只是Eclipse插件。方法是32位的COM.moveMemory(int,TCHAR,int)和64位的COM.moveMemory(long,TCHAR,int)。我有int/long变量。现在我想让我的代码调用相应的方法。这些类是内部的,不是SWT API的一部分,因此不应该直接使用。这个场景可以与任何方法而不是这些内部API一起使用。在这种情况下,如何处理这个问题?为什么要使用内部SWT类?为什么要使用内部SWT类?