как загрузить файл из комплекта в eclispe rcp - PullRequest
0 голосов
/ 11 июня 2018

Я загружаю файл свойств в комплекте eclipse, но мой код использует InternalPlatform из пакета eclipse, что не лучший способ сделать это, потому что это пакет с ограниченным доступом из eclipse.Как мне загрузить этот файл из classpath.

public Properties getProperties(String resourceName){
            Bundle bundle = InternalPlatform.getDefault().getBundle("sample-bundle");
            try {
                return PropertyFactory.getProperties(new URL("platform:/plugin/" + bundle.getSymbolicName() + "/" + resourceName));
            } catch (Exception e) {
                logger.error("Unable to load aegis config {}", e.getMessage(), e);
                return null;
            }



private static Properties getProperties(URL url) throws IOException {   
    Properties properties = new Properties();
    logger.info("Loading Properties  from {}", url);
    properties.load(url.openStream());
    return properties;
}

1 Ответ

0 голосов
/ 11 июня 2018

Класс Platform предоставляет официальный способ получить пакет для плагина с его идентификатором:

Bundle bundle = Platform.getBundle("sample-bundle");

Затем можно использовать класс FileLocator, чтобы найти ресурс в комплекте:

IPath path = new Path("relative path of resource in bundle");

URL url = FileLocator.find(bundle, path, null);

Примечание: Platform равно org.eclipse.core.runtime.Platform в плагине org.eclipse.core.runtime.Path - это org.eclipse.core.runtime.Path.

...