Znajdowanie numeru wersji Eclipse

115

Napisałem, jak znaleźć to w Eclipse Gallileo, ale jeśli ktoś ma informacje o starszych wersjach, to śmiało zamieść je poniżej.

Casebash
źródło
3
Mam nadzieję, że pojawi się to w Google, jeśli kiedykolwiek o tym zapomnę.
Casebash,
66
Wydaje mi się śmieszne, że utrudniają mi odpowiedź na proste pytanie: „jaką mam wersję Eclipse?”.
Lyle,
3
I to teraz pojawia się w Google = P
Casebash
2
Tak, to brak wysiłku, aby ułatwić użytkownikowi pracę, zawodzi tak wiele usług / aplikacji @Lyle. Einstein (nie żeby był kimś lub że jego słowa były prawdziwe w tym przypadku) w zasadzie powiedział, że rzeczy powinny być tak proste, jak to tylko możliwe, ale dziś wydaje się, że wielu w ogóle nie bierze pod uwagę takiej maksymy
George Tomlinson
Kliknij tutaj, sprawdź ten link. Dostaniesz lepszą odpowiedź
Sabapathy

Odpowiedzi:

104

(Aktualizacja wrzesień 2012):

MRT zwraca uwagę w komentarzach, że pytanie „ Wersja Eclipse ” odnosi się do a .eclipseproductw głównym folderze i zawiera:

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

Wydaje się to więc prostsze niż moja pierwotna odpowiedź poniżej.

Ponadto Neeme Praks wspomina poniżej, że istnieje eclipse/configuration/config.iniwiersz, który zawiera taki wiersz:

eclipse.buildId=4.4.1.M20140925-0400

Ponownie łatwiejsze do znalezienia, ponieważ są to właściwości Java ustawione i znalezione za pomocą System.getProperty("eclipse.buildId").


Oryginalna odpowiedź (kwiecień 2009)

W przypadku Eclipse Helios 3.6 wersję platformy Eclipse można wywnioskować bezpośrednio z ekranu Informacje:
Jest to połączenie wersji globalnej Eclipse i identyfikatora kompilacji:

tekst alternatywny

Oto przykład dla Eclipse 3.6M6:
Wersja byłaby: 3.6.0.v201003121448 , po wersji 3.6.0 i identyfikatorze kompilacji I20100312-1448 (kompilacja integracji z 12 marca 2010 r. O godzinie 14.48

Aby łatwiej to zobaczyć, kliknij „Szczegóły wtyczki” i posortuj według wersji.


Uwaga: Eclipse3.6 ma zupełnie nowe fajne logo:

tekst alternatywny

I możesz zobaczyć identyfikator kompilacji, który jest teraz wyświetlany podczas ładowania innej wtyczki.

VonC
źródło
3
stackoverflow.com/questions/2313660/eclipse-version Możesz też spróbować. Naprawdę jest to bardzo łatwe w użyciu!
MRT,
@MRT dobra uwaga. Zawarłem to w odpowiedzi dla większej widoczności.
VonC,
1
Kiedy właśnie to wypróbowałem, .eclipseproduct zawierał 3.6.1, ale plik readme / readme_eclipse.html zawierał 3.6.2. Okazuje się, że 3.6.2 jest poprawną wersją, więc bądź ostrożny.
Dave Griffiths
Warto również wiedzieć, czy korzystasz z wersji 32-bitowej czy 64-bitowej, sprawdź tę odpowiedź, aby dowiedzieć się, jak to ustalić: stackoverflow.com/a/9578565/191761
Adam Burley
18

W Eclipse Gallileo:

Strona Informacje (Pomoc -> O Eclipse) ma kilka ikon w dolnej części okna dialogowego. Powinno to obejmować dwie, które są zwykłą ikoną Eclipse. Wybierz ten z etykietką „Eclipse.org”. Eclipse ma wiele komponentów, z których każdy ma swój własny numer wersji. Rdzeniem jest Platforma Eclipse

Casebash
źródło
15

Myślę, że najłatwiejszym sposobem jest odczytanie pliku readme w katalogu Eclipse pod ścieżkąeclipse/readme/eclipse_readme .

Na samej górze tego pliku wyraźnie wskazuje numer wersji:

For My Eclipse Juno; mówi wersja jakoRelease 4.2.0

rai.skumar
źródło
2

jeśli chcesz uzyskać do tego dostęp programowo, możesz to zrobić, sprawdzając wersję wtyczki 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();
sudhan
źródło
2

Oto działający fragment kodu, który wydrukuje pełną wersję aktualnie działającego Eclipse (lub dowolnej aplikacji opartej na 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());
        }
      }
    }
  }
}

Wyszukuje aktualnie działające rozszerzenie „produkt” i pobiera wersję wtyczki, z której pochodzi.

Na Eclipse Luna 4.4.0 daje wynik, 4.4.0.20140612-0500który jest poprawny.

Neeme Praks
źródło
1

Dla Eclipse Java EE IDE - Indigo: Pomoc> O Eclipse> Eclipse.org (trzeci od ostatniego). W sekcji „Informacje o platformie Eclipse” znajdź platformę Eclipse, a wersja zostanie wyświetlona pod kolumną Wersja. Mam nadzieję, że to pomoże użytkownikom J2EE Indigo.

Mario Galea
źródło
1

Istnieje właściwość systemowa eclipse.buildId (na przykład dla Eclipse Luna mam tam wartość 4.4.1.M20140925-0400 ).

Nie jestem pewien, w której wersji Eclipse ta właściwość stała się dostępna.

Zanurkuj również od razu i zbadaj wszystkie dostępne właściwości systemu - w przestrzeniach nazw eclipse. *, Os. * Osgi. * I org.osgi. * Jest sporo informacji.


AKTUALIZACJA! Po eksperymentach z różnymi wersjami Eclipse wydaje się, że eclipse.buildIdwłaściwość systemu nie jest właściwą drogą. Na przykład w Eclipse Luna 4.4.0 daje wynik, 4.4.2.M20150204-1700którego wynik jest oczywiście nieprawidłowy.

Podejrzewam eclipse.buildId, że właściwość systemu jest ustawiona na wersję org.eclipse.platformwtyczki. Niestety nie daje to (zawsze) prawidłowego wyniku. Jednak dobrą wiadomością jest to, że mam rozwiązanie z działającym przykładem kodu, który opiszę w osobnej odpowiedzi.

Neeme Praks
źródło
W rzeczy samej. Właśnie to przetestowałem eclipse-java-luna-SR1a-win32-x86_64. Twoja odpowiedź zawarłem powyżej. +1
VonC
Wspominasz o „eclipse / configuration / config.ini”, ale nie wspominasz, że jest on łatwo dostępny z kodu Java za pomocą System.getProperty („eclipse.buildId”). Nie jestem pewien, jaki był kontekst pierwotnego pytania, czy chciał je znaleźć w systemie plików, czy w czasie wykonywania (wewnątrz wtyczki)?
Neeme Praks
Podejrzewam, że było to trochę z obu, głównie tam, gdzie te informacje zostały zapisane.
VonC
1

Na podstawie Neeme Praks ' odpowiedź , poniższy kod powinien dać wersję Eclipse IDE masz uruchomiony wewnątrz.

W moim przypadku korzystałem z produktu pochodzącego z zaćmienia, więc odpowiedź Neeme podała mi tylko wersję tego produktu. OP zapytał, jak znaleźć wersję Eclipse , po co mi chodzi. Dlatego musiałem dokonać kilku zmian, które doprowadziły mnie do tego:

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

To zwróci Ci wygodę Version, którą można porównać w ten sposób:

    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
źródło
Wydaje się to bardziej precyzyjne niż moja stara odpowiedź z 2010 roku. Głosowane za głosem
VonC
0

W przypadku Eclipse Kepler nie ma pomocy> O Eclipse, ale okazało się, że to działa:

Eclipse> O Eclipse

Michael Osofsky
źródło
Co masz na myśli mówiąc „Eclipse”. Nie widzę tej opcji w wierszu „Nawiguj po edycji pliku ...”.
Wes
Jestem na komputerze Mac, więc jest opcja menu o nazwie Eclipse, która znajduje się po lewej stronie opcji menu o nazwie Plik.
Michael Osofsky