查找Eclipse版本号


115

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


3
希望如果我再忘记一次,它将显示在Google中。
Casebash 2010年

66
对于我来说,使他们难以回答“我具有什么版本的Eclipse?”这个简单问题,对我来说似乎有点荒谬。
莱尔(Lyle)2010年

3
现在,它出现在Google = P
Casebash 2010年

2
是的,正是因为缺乏使用户轻松操作的努力,才使@Lyle的服务/应用程序崩溃了。爱因斯坦(不是说他什么都没有,或者在这种情况下他的话不是对的)基本上说事情应该尽可能简单,但是今天看来,对于这样的格言,许多人根本没有考虑
乔治·汤姆林森

单击此处 检查该链接。您会得到更好的答案
Sabapathy 2013年

Answers:


104

(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。


3
stackoverflow.com/questions/2313660/eclipse-version您也可以尝试。真的,这非常好用!
MRT 2012年

@捷运好点。我将其包含在答案中以提高可见性。
VonC 2012年

1
当我尝试此操作时,.eclipseproduct包含3.6.1,但readme / readme_eclipse.html包含3.6.2。原来3.6.2是正确的版本,所以请小心。
Dave Griffiths 2013年

知道您运行的是32位还是64位版本也可能很有用,请查看此答案以确定如何确定:stackoverflow.com/a/9578565/191761
Adam Burley 2014年

18

在Eclipse Gallileo中:

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


15

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

在此文件的最顶部,它清楚地告诉版本号:

对于My Eclipse Juno;它说版本为Release 4.2.0


2

如果要以编程方式访问此文件,可以通过找出eclipse \ plugins \ org.eclipse.platform_插件的版本来实现

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

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

2

这是一个工作代码片段,它将打印出当前正在运行的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是正确的。


1

对于Eclipse Java EE IDE-Indigo:帮助>关于Eclipse> Eclipse.org(倒数第三)。在“关于Eclipse平台”中,找到Eclipse平台,然后在“版本”列下找到版本。希望这对J2EE Indigo用户有帮助。


1

有一个系统属性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
VonC

您提到了“ eclipse / configuration / config.ini”,但是没有提到可以使用System.getProperty(“ eclipse.buildId”)从Java代码轻松访问它。我不确定原始问题的内容是什么,他是否想在文件系统中或运行时(在插件内部)找到它?
Neeme Praks

我怀疑两者都有一点,主要是在记录信息的地方。
VonC

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

这似乎比我2010年的旧答案更精确。推荐
VonC

0

对于Eclipse Kepler,没有帮助>关于Eclipse,但是我发现这可行:

Eclipse>关于Eclipse


您所说的“ Eclipse”是什么意思。我在“文件编辑导航...”行中没有看到此选项。
2014年

我在Mac上,因此有一个名为Eclipse的菜单选项,位于菜单选项File的左侧。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.