Java 识别已安装eclipse的bit版本

Java 识别已安装eclipse的bit版本,java,eclipse,32bit-64bit,Java,Eclipse,32bit 64bit,我想知道我的机器上安装的eclipse的位类型是32位版本还是64位版本,因为我需要一个返回eclipse位版本的java函数 谢谢假设此程序将在Eclipse中运行(例如,是一个插件),那么系统属性对象中将有许多属性告诉您这一点。例如: java.vm.name包含当前JVM的名称,其中(至少对于热点)包括“32位”或“64位” org.osgi.framework.processor告诉您“框架主机的处理器名称”,在我的Eclipse上是“x86-64” arch告诉您“平台架构”,在我的

我想知道我的机器上安装的eclipse的位类型是32位版本还是64位版本,因为我需要一个返回eclipse位版本的java函数


谢谢

假设此程序将在Eclipse中运行(例如,是一个插件),那么系统属性对象中将有许多属性告诉您这一点。例如:

  • java.vm.name包含当前JVM的名称,其中(至少对于热点)包括“32位”或“64位”

  • org.osgi.framework.processor告诉您“框架主机的处理器名称”,在我的Eclipse上是“x86-64”

  • arch告诉您“平台架构”,在我的Eclipse上是“x86-64”

现在还不完全清楚最后两个是什么意思,所以你可能应该做一些实验



如果您需要在Eclipse外部执行此操作,那么您可以尝试在Eclipse可执行文件上运行Linux/Unix“file”命令并分离结果字符串。

还有一个Eclipse API用于此操作

您需要将
org.eclipse.core.runtime
依赖项添加到插件中,然后在
org.eclipse.core.runtime.Platform
类中有一个静态方法
getOSArch()
返回当前系统架构。您可以将其与同一类中定义的常量进行比较(例如
ARCH\u X86\u 64
ARCH\u X86


如javadoc中所述,如果没有在命令行中指定架构,它将默认为
java.lang.System.getProperty(“os.arch”)

最后,我认为出于插件目的
System.getProperty(“osgi.arch”)
非常完美,它为32位eclipse返回x86,为64位eclipse返回x86\u 64。

您可以从eclipse主目录中的eclipse.ini文件中检查它

示例:

如果--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86641.1.200.v20130521-0416 然后是64位,如果--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x8632\u 1.1.200.v20130521-0416 然后是32位


嗯?请重新表述您的问题:您到底想做什么?更多解释:我有一个程序在64位版本的eclipse中不工作,它需要另一段代码,所以我想检查一下eclipse是32位版本还是64位版本。Java是独立于体系结构的:它应该在64位版本上工作32位或64位体系结构。(如果您使用的是本机函数或非常复杂的东西,可能会有不同的情况,但这似乎不太可能。)这是我在帮助->关于->安装详细信息->配置中获得的两个org.osgi.framework.processor和osgi.arch的副本,但是我如何通过编程读取这些信息。我认为它们应该被添加到系统属性对象中。这里的依赖关系取决于你的插件。