我已经在Eclipse Gallileo中发布了如何找到它的信息,但是如果有任何关于较旧版本的信息,请随时在下面发布。
我已经在Eclipse Gallileo中发布了如何找到它的信息,但是如果有任何关于较旧版本的信息,请随时在下面发布。
Answers:
(2012年9月更新):
MRT指出在评论中说:“ Eclipse版本 ”的问题引用一个.eclipseproduct
主文件夹,它包含:
name=Eclipse Platform
id=org.eclipse.platform
version=3.x.0
因此,这似乎比下面我的原始答案更直接。
另外,Neeme Praks在下面提到,其中有一个eclipse/configuration/config.ini
包含以下内容的行:
eclipse.buildId=4.4.1.M20140925-0400
再次容易找到,因为这些都是通过Java设置和找到的System.getProperty("eclipse.buildId")
。
原始答案(2009年4月)
对于Eclipse Helios 3.6,您可以直接从“关于”屏幕推断Eclipse平台版本:
它是Eclipse全局版本和构建ID的组合:
这是Eclipse 3.6M6的示例:
版本为:3.6.0.v201003121448,在版本3.6.0和构建ID I20100312-1448之后(集成构建于2010年3月12日,14h48)
要更轻松地查看它,请单击“插件详细信息”并按版本排序。
注意:Eclipse3.6具有全新的酷徽标:
并且您可以看到在其他插件的加载步骤中正在显示构建ID。
这是一个工作代码片段,它将打印出当前正在运行的Eclipse(或任何基于RCP的应用程序)的完整版本。
String product = System.getProperty("eclipse.product");
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint("org.eclipse.core.runtime.products");
Logger log = LoggerFactory.getLogger(getClass());
if (point != null) {
IExtension[] extensions = point.getExtensions();
for (IExtension ext : extensions) {
if (product.equals(ext.getUniqueIdentifier())) {
IContributor contributor = ext.getContributor();
if (contributor != null) {
Bundle bundle = Platform.getBundle(contributor.getName());
if (bundle != null) {
System.out.println("bundle version: " + bundle.getVersion());
}
}
}
}
}
它查找当前正在运行的“产品”扩展名并获取贡献插件的版本。
在Eclipse Luna 4.4.0上,它给出的结果4.4.0.20140612-0500
是正确的。
对于Eclipse Java EE IDE-Indigo:帮助>关于Eclipse> Eclipse.org(倒数第三)。在“关于Eclipse平台”中,找到Eclipse平台,然后在“版本”列下找到版本。希望这对J2EE Indigo用户有帮助。
有一个系统属性eclipse.buildId(例如,对于Eclipse Luna,我有4.4.1.M20140925-0400有一个作为值)。
我不确定该属性在哪个版本的Eclipse中可用。
此外,深入研究所有可用的系统属性-eclipse。*,os。* osgi。*和org.osgi。*名称空间下有很多可用信息。
更新!
在尝试了不同的Eclipse版本之后,似乎eclipse.buildId
无法使用系统属性。例如,在Eclipse Luna 4.4.0上,它给出的结果4.4.2.M20150204-1700
显然是不正确的。
我怀疑eclipse.buildId
系统属性设置为org.eclipse.platform
插件的版本。不幸的是,这并不能(始终)给出正确的结果。但是,好消息是我有一个解决方案,提供了有效的代码示例,将在单独的答案中进行概述。
eclipse-java-luna-SR1a-win32-x86_64
。我已将您的答案包含在我的上面。+1
根据Neeme Praks的回答,以下代码应为您在其中运行的eclipse ide提供版本。
以我为例,我正在使用蚀食产品,因此Neeme的回答只是给了我该产品的版本。OP问我如何找到Eclipse版本。因此,我需要进行一些更改,以使我做到这一点:
/**
* Attempts to get the version of the eclipse ide we're running in.
* @return the version, or null if it couldn't be detected.
*/
static Version getEclipseVersion() {
String product = "org.eclipse.platform.ide";
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint("org.eclipse.core.runtime.products");
if (point != null) {
IExtension[] extensions = point.getExtensions();
for (IExtension ext : extensions) {
if (product.equals(ext.getUniqueIdentifier())) {
IContributor contributor = ext.getContributor();
if (contributor != null) {
Bundle bundle = Platform.getBundle(contributor.getName());
if (bundle != null) {
return bundle.getVersion();
}
}
}
}
}
return null;
}
这将为您带来方便Version
,可以将其进行比较:
private static final Version DESIRED_MINIMUM_VERSION = new Version("4.9"); //other constructors are available
boolean haveAtLeastMinimumDesiredVersion()
Version thisVersion = getEclipseVersion();
if (thisVersion == null) {
//we might have a problem
}
//returns a positive number if thisVersion is greater than the given parameter (desiredVersion)
return thisVersion.compareTo(DESIRED_MINIMUM_VERSION) >= 0;
}