Java 识别已安装eclipse的bit版本
我想知道我的机器上安装的eclipse的位类型是32位版本还是64位版本,因为我需要一个返回eclipse位版本的java函数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中运行(例如,是一个插件),那么系统属性对象中将有许多属性告诉您这一点。例如:
- 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的副本,但是我如何通过编程读取这些信息。我认为它们应该被添加到系统属性对象中。这里的依赖关系取决于你的插件。