Поиск номера версии Eclipse

115

Я опубликовал, как найти его в Eclipse Gallileo, но если у кого-то есть информация о более старых версиях, не стесняйтесь размещать ее ниже.

Casebash
источник
3
Надеюсь, это появится в Google, если я когда-нибудь снова об этом забуду.
Casebash
66
Мне кажется смешным, что они затрудняют ответ на простой вопрос «какая у меня версия Eclipse?».
Lyle
3
И теперь это появляется в Google = P
Casebash
2
Да, именно отсутствие усилий, направленных на то, чтобы упростить задачу для пользователя, подвело так много сервисов / приложений @Lyle. Эйнштейн (не то чтобы он был кем-то или что его слова были правдой в данном случае) в основном сказал, что все должно быть сделано настолько простым, насколько это возможно, но сегодня кажется, что многие вообще не думают о такой максиме
Джордж Томлинсон
Щелкните здесь, проверьте эту ссылку. Вы получите лучший ответ
Сабапати

Ответы:

104

(Обновление от сентября 2012 г.):

MRT указывает в комментариях, что вопрос « Версия Eclipse » ссылается на a .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 г.)

Для Eclipse Helios 3.6 версию платформы Eclipse можно определить прямо из экрана «О программе»:
это комбинация глобальной версии Eclipse и идентификатора сборки:

альтернативный текст

Вот пример для Eclipse 3.6M6:
Версия будет: 3.6.0.v201003121448 , после версии 3.6.0 и идентификатора сборки I20100312-1448 (сборка интеграции от 12 марта 2010 г., 14:48

Чтобы упростить просмотр, нажмите «Сведения о плагине» и отсортируйте его по версии.


Примечание: у Eclipse3.6 появился новый крутой логотип:

альтернативный текст

И вы можете видеть, что идентификатор сборки теперь отображается на этапе загрузки другого плагина.

VonC
источник
3
stackoverflow.com/questions/2313660/eclipse-version Вы также можете попробовать. На самом деле это очень просто!
MRT
@MRT хороший момент. Я включил его в ответ для большей наглядности.
VonC
1
Когда я просто попробовал это, продукт .eclipseproduct содержал 3.6.1, а файл readme / readme_eclipse.html содержал 3.6.2. Оказалось, что 3.6.2 - правильная версия, так что будьте осторожны.
Дэйв Гриффитс,
Также может быть полезно узнать, используете ли вы 32-битную или 64-битную сборку, проверьте этот ответ, чтобы узнать, как это определить: stackoverflow.com/a/9578565/191761
Адам Берли
18

В Eclipse Gallileo:

На странице информации (Справка -> О Eclipse) есть несколько значков внизу диалогового окна. Он должен включать два, которые представляют собой простой значок Eclipse. Выберите тот с всплывающей подсказкой «Eclipse.org». Eclipse состоит из множества компонентов, каждый из которых имеет собственный номер версии. Ядро - платформа Eclipse

ревизии Casebash
источник
15

Я думаю, самый простой способ - прочитать файл readme внутри вашего каталога Eclipse по путиeclipse/readme/eclipse_readme .

В самом верху этого файла четко указан номер версии:

Для моего затмения Юнона; он говорит версию какRelease 4.2.0

rai.skumar
источник
2

если вы хотите получить доступ к этому программно, вы можете сделать это, выяснив версию 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();
sudhan
источник
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свойство system - это не лучший вариант. Например, в 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», но не упоминаете, что он легко доступен из кода Java с помощью System.getProperty («eclipse.buildId»). Я не уверен, в чем был контекст исходного вопроса, хотел ли он найти его в файловой системе или во время выполнения (внутри плагина)?
Neeme Praks
Я подозреваю, что это было то и другое, в основном там, где была записана эта информация.
VonC
1

На основе Neeme Praks " ответ , приведенный ниже код должен дать вам версию Eclipse IDE , вы работаете внутри.

В моем случае я работал в продукте, производном от eclipse, поэтому ответ Неэме просто дал мне версию этого продукта. 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;
    }
M_M
источник
Это кажется более точным, чем мой старый ответ 2010 года. Проголосовали за
VonC
0

Для Eclipse Kepler нет Help> About Eclipse, но я обнаружил, что это работает:

Eclipse> Об Eclipse

Майкл Ософски
источник
Что вы имеете в виду под "Затмением"? Я не вижу этой опции в строке "File Edit Navigate ...".
Уэс,
Я нахожусь на Mac, поэтому есть пункт меню Eclipse, который находится слева от пункта меню под названием File.
Майкл Ософски