Я хотел бы показать номер версии пользовательской функции Eclipse, которую я разрабатываю в заголовке своей перспективы. Есть ли способ получить номер версии из плагина среды выполнения и/или рабочей среды?Как я могу получить номер версии пользовательской функции Eclipse во время выполнения?
ответ
Что-то вроде:
Platform.getBundle("my.feature.id").getHeaders().get("Bundle-Version");
должен сделать трюк.
Примечание (from this thread), что он не может быть использован в любом месте в пределах сам плагин:
this.getBundle()
не действует до тех пор, пока ПОСЛЕ super.start(BundleContext)
был вызван плагином.
Так что если вы используете this.getBundle()
в своем конструкторе или в пределах вашего start(BundleContext)
перед вызовом super.start()
, тогда он вернет null.
Если это не удается, то есть здесь в more complete "version":
public static String getPlatformVersion() {
String version = null;
try {
Dictionary dictionary =
org.eclipse.ui.internal.WorkbenchPlugin.getDefault().getBundle().getHeaders();
version = (String) dictionary.get("Bundle-Version"); //$NON-NLS-1$
} catch (NoClassDefFoundError e) {
version = getProductVersion();
}
return version;
}
public static String getProductVersion() {
String version = null;
try {
// this approach fails in "Rational Application Developer 6.0.1"
IProduct product = Platform.getProduct();
String aboutText = product.getProperty("aboutText"); //$NON-NLS-1$
String pattern = "Version: (.*)\n"; //$NON-NLS-1$
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(aboutText);
boolean found = m.find();
if (found) {
version = m.group(1);
}
} catch (Exception e) {
}
return version;
}
я использую первый вариант:
protected void fillStatusLine(IStatusLineManager statusLine) {
statusItem = new StatusLineContributionItem("LastModificationDate"); //$NON-NLS-1$
statusItem.setText("Ultima Actualizaci\u00f3n: "); //$NON-NLS-1$
statusLine.add(statusItem);
Dictionary<String, String> directory = Platform.getBundle("ar.com.cse.balanza.core").getHeaders();
String version = directory.get("Bundle-Version");
statusItem = new StatusLineContributionItem("CopyRight"); //$NON-NLS-1$
statusItem.setText(Messages.AppActionBar_18);
statusLine.add(statusItem);
}
еще лучше: \t Строка version = Platform.getBundle ("ar.com.cse.balanza.core"). GetVersion(). ToString(); – Nicolas400
Как @zvikico говорит выше, принятый ответ не работает для Особенности, только плагины (OSGi Bundles, какие функции нет). Способ получения информации об установленных функциях - org.eclipse.core.runtime.Platform.getBundleGroupProviders()
как described here.
версию того, что VonC при условии, чтобы получить первичную Eclipse, номер версии, но один, который не ссылается на внутренние классы (которые вы должны избегать делать):
Platform.getBundle(PlatformUI.PLUGIN_ID).getHeaders().get("Bundle-Version");
- 1. Как получить версию пользовательской функции во время выполнения?
- 2. Прочтите номер версии project.json во время выполнения
- 3. Как я могу получить номер версии Windows EXE или DLL?
- 4. Как я могу получить версию jruby во время выполнения?
- 5. Eclipse JAR во время выполнения
- 6. Как я могу сериализовать функции во время выполнения в Clojure?
- 7. Как получить номер версии JavaFX?
- 8. Могу ли я ввести номер родительской версии во время выполнения в maven?
- 9. Как я могу получить классы javafx во время выполнения?
- 10. Как я могу получить имя запускающей очереди во время выполнения?
- 11. Как я могу получить размер файла .ear во время выполнения?
- 12. Как я могу получить данные комментария #pragma во время выполнения?
- 13. Java: Как я могу получить общий тип во время выполнения?
- 14. .NET Core App - Как получить номер сборки во время выполнения
- 15. Как получить код версии во время выполнения Bluej
- 16. Как я могу получить номер версии git на сервере?
- 17. Как я могу изменить авторизацию уровня выполнения во время выполнения?
- 18. Как я могу изменить клавиатуру во время выполнения в iphone
- 19. Версии плагинов + банки во время выполнения Grails
- 20. Печать версии EntityFramework во время выполнения
- 21. Получить версию jar во время выполнения
- 22. Как я могу отлаживать банку во время выполнения?
- 23. Как получить арифметические операторы во время выполнения?
- 24. Android, как я могу определить номер отправки во время MMS_SEND
- 25. Получите установленные версии зависимостей во время выполнения
- 26. Eclipse не выполняет функции памяти VM во время выполнения?
- 27. Неизвестный номер ошибки во время выполнения: -2146827687
- 28. Java: Могу ли я внедрить исключение во время выполнения во произвольный метод класса во время выполнения?
- 29. Изменение кода выполнения функции во время выполнения
- 30. Как создать оболочку функции во время выполнения?
AFAIK, это работает для плагинов, но не для функции. Я не уверен, что есть способ получить версию для функций. – zvikico