我正在尝试向插件添加一个片段,以便 添加到插件的信息而不触及后者。
但是,我遇到的问题是我无法访问资源 位于片段的插件中,但不是其他方式 大约。
这就是我获取资源及其 list 的方式 项目。资源文件“patch.xml”位于/src文件夹中。
测试.plugin2:
主类:
public class Main{
public static void main(String[] args) {
RetrieveResource ma = new RetrieveResource();
ma.retrieve();
}
}
检索资源:
public class RetrieveResource {
public RetrieveResource(){
}
public void retrieve(){
URL url = this.getClass().getClassLoader().getResource("patch.xml");
System.out.println(url);
}
}
url 始终为空。
list .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"
构建.属性
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
测试.fragment2:
list .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
构建.属性
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
缺少什么或者哪里出了问题?
是否可以从插件访问片段?
问题已解决: 在我的测试中,我启动了 test.plugin2 项目,如下所示 “java应用程序”模式。由于片段和插件有 要在运行时合并,必须启动应用程序 在“eclipse application”模式下就不会有问题 获取资源。
最佳答案
使用FileLocator.find
(在org.eclipse.core.runtime
中)搜索插件和片段中的资源。
Bundle bundle = ... your plugin Bundle
IPath path = new Path("patch.xml");
URL url = FileLocator.find(bundle, path, null);
关于java - 从片段访问插件,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25200319/