Finding the Eclipse Version Number

我已经发布了如何在 Eclipse Gallileo 中找到它,但是如果任何人有关于旧版本的信息,请随意发布在下面。

109358 次浏览

在 Eclipse Gallileo:

About 页面(Help-> About Eclipse)在对话框底部有一些图标。这应该包括两个纯 Eclipse 图标。选择带有工具提示“ Eclipse.org”的那个。Eclipse 有许多组件,每个组件都有自己的版本号。其核心是 Eclipse 平台

(2012年9月更新) :

MRT 指出 在评论中中的“ Eclipse 版本”问题指的是主文件夹中的 .eclipseproduct,它包含:

name=Eclipse Platform
id=org.eclipse.platform
version=3.x.0

So that seems more straightforward than my original answer below.

此外,尼姆 · 普拉克斯提到 下面有一个 eclipse/configuration/config.ini,其中包括一行如下内容:

eclipse.buildId=4.4.1.M20140925-0400

同样更容易找到,因为这些是 Java 属性集,并且可以在 System.getProperty("eclipse.buildId")中找到。


Original answer (April 2009)

对于 Eclipse Helios 3.6,您可以直接从 About 屏幕推断 Eclipse Platform 版本:
它是 Eclipse 全局版本和 build Id 的组合:

alt text

下面是 Eclipse 3.6 M6的一个例子:
版本将是: 3.6.0.v201003121448,在版本3.6.0和构建 Id I20100312-1448之后(从2010年3月12日开始的集成构建,时间为14小时48分)

要更容易看到它,点击“插件详细信息”和排序的版本。


注意: Eclipse3.6有一个很酷的全新 logo:

alt text

您可以看到在加载不同插件的步骤中现在显示的 build Id。

if you want to access this programatically, you can do it by figuring out the version of eclipse\plugins\org.eclipse.platform_ plugin

    String platformFile = <the above file>; //actually directory


versionPattern = Pattern.compile("\\d\\.\\d\\.\\d");
Matcher m = versionPattern.matcher(platformFile);
return m.group();

我认为,最简单的方法是读取 Eclipse 目录中路径 eclipse/readme/eclipse_readme处的 自述文件。

在这个文件的顶部,它清楚地显示了版本号:

对于 MyEclipseJuno,它的版本是 Release 4.2.0

对于 Eclipse Java EE IDE-靛蓝: Help > About Eclipse > Eclipse.org (倒数第三个)。在“关于 Eclipse 平台”中找到 Eclipse 平台,您将在版本列下面找到该版本。希望这对 J2EE 靛蓝用户有所帮助。

对于 Eclipse Kepler,没有关于 Eclipse 的 Help > About Eclipse,但是我发现这个可以用:

Eclipse > 关于 Eclipse

有一个系统属性 Eclipse.buildId(例如,对于 EclipseLuna,我将 4.4.1. M20140925-0400作为一个值)。

我不确定在 Eclipse 的哪个版本中这个属性变得可用。

另外,深入研究并探索所有可用的系统属性——在 eclipse 中有相当多的可用信息。* ,os.* osgi.* and org.osgi.* 名称空间。


更新! 在尝试了不同的 Eclipse 版本之后,似乎 eclipse.buildId系统属性并不是解决问题的方法。例如,在 Eclipse Luna 4.4.0上,它给出了显然不正确的 4.4.2.M20150204-1700结果。

我怀疑 eclipse.buildId系统属性被设置为 org.eclipse.platform插件的版本。不幸的是,这并不(总是)给出正确的结果。不过,好消息是,我有一个解决方案与工作代码示例,我将在一个单独的答案概述。

下面是一个工作代码片段,它将打印出当前运行的 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());
}
}
}
}
}

It looks up the currently running "product" extension and takes the version of contributing plugin.

在 Eclipse Luna 4.4.0上,给出了正确的 4.4.0.20140612-0500计算结果。

基于 尼姆 · 普拉克斯回答,下面的代码应该给你的版本的 日食你正在运行。

在我的案例中,我运行的是一个 Eclipse 衍生产品,所以 Neeme 的回答只是给了我该产品的版本。OP 询问如何找到 日食版本,这正是我所追求的。因此,我需要做出一些改变,让我做到这一点:

    /**
* 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;
}

1-打开 Eclipse IDE。 按: Alt + H 3-使用键盘箭头向下列表 4-选择 About Eclipse IDE 选项卡。

如果您正在使用 mac,那么在顶部的 Eclipse 选项中可以找到 About Eclipse。