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

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

我正在尝试向插件添加一个片段,以便 添加到插件的信息而不触及后者。

但是,我遇到的问题是我无法访问资源 位于片段的插件中,但不是其他方式 大约。

这就是我获取资源及其 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/

相关文章:

java - bundle -NativeCode : header in MANIFEST file give "Error: An unexpected error occurred while trying to open file pr.jar"

Java 并发可见性

java - 使用 ormlite 访问现有的 postgres 数据库

java - 在 Eclipse RCP 中,有没有办法检查帮助窗口是否打开?

eclipse-rcp - eclipse : Handlers' @CanExecute methods not called

java - 使用 Eclipse/Tomcat 自动将第 3 方 jars 添加到 WEB-INF/lib

java - 如何摆脱 java.lang.RuntimeException : Unable to locate the App Engine agent in Eclipse Helios?

java - 刷新 eclipse 应用程序中的导航 View

java - 将源验证添加到 StructuredTextViewer

java - 更改语言环境并重新启动后如何强制更新 View 标题?