从片段访问插件,反之亦然

时间:2014-08-08 09:36:26

标签: java eclipse-plugin eclipse-rcp eclipse-fragment

我试图将一个片段添加到插件中以便拥有 添加到插件中的信息不会触及后者。

但是,我遇到的问题是我可以访问资源 这些是来自片段的插件,而不是其他方式 周围。

这就是我获取资源的方式以及两者的清单 项目。资源文件" patch.xml"在/ src文件夹中。

test.plugin2:

主要课程:

public class Main{

    public static void main(String[] args) {
        RetrieveResource ma = new RetrieveResource();
        ma.retrieve();
    }
}

RetrieveResource:

public class RetrieveResource {

    public RetrieveResource(){

    }

    public void retrieve(){
        URL url = this.getClass().getClassLoader().getResource("patch.xml");
        System.out.println(url);
    }
}

url始终为null。

MANIFEST.MF:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Plugin2
Bundle-SymbolicName: test.plugin2;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0"

build.properties

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\

test.fragment2:

MANIFEST.MF

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Fragment2
Bundle-SymbolicName: test.fragment2
Bundle-Version: 1.0.0.qualifier
Fragment-Host: test.plugin2;bundle-version="1.0.0.qualifier"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: test.fragment2.classes

build.properties

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\

缺少什么或我哪里出错了?
甚至可以从插件中访问片段吗?

问题已解决: 在我的测试中,我正在启动test.plugin2项目 " java应用程序"模式。由于片段和插件有 要在运行时合并,必须启动应用程序 在" eclipse应用程序"模式,没有问题 获取资源。

1 个答案:

答案 0 :(得分:1)

使用FileLocator.find(在org.eclipse.core.runtime中)搜索插件和片段中的资源。

Bundle bundle = ... your plugin Bundle

IPath path = new Path("patch.xml");

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