【问题标题】:Read static file in a Eclipse plugin [duplicate]在 Eclipse 插件中读取静态文件 [重复]
【发布时间】:2020-12-31 16:10:12
【问题描述】:

我正在编写一个必须为 XSLT 转换读取 XML 文件的 Eclipse 插件。 XML 文件位于 XSLT/ 目录中。我是这样得到路径的:

String fileXSL = "XSLT/file.xslt";

程序找不到该文件。这种方式也行不通:

this.getClass().getClassLoader().getResource("XSLT/file.xslt");

我已经在 build.properties 中插入了这个目录,但问题仍然存在。有什么想法吗?

【问题讨论】:

    标签: java eclipse eclipse-plugin


    【解决方案1】:

    使用org.eclipse.core.runtime.FileLocator

    首先获取您的捆绑包:

    Bundle bundle = Platform.getBundle("your plugin id");
    

    Bundle 也可以在传递给激活器start 方法的BundleContext 中使用。

    你也可以使用

    Bundle bundle = FrameworkUtil.getBundle(getClass());
    

    获取当前类的捆绑包。

    然后您可以使用:

    InputStream is = FileLocator.openStream(bundle, new Path("XSLT/file.xslt"), false);
    

    URL eclipseURL = FileLocator.find(bundle, new Path("XSLT/file.xslt"), null);
    
    URL fileURL = FileLocator.toFileURL(eclipseURL);
    

    注意:来自FileLocator.find 的URL 可能使用内部Eclipse 协议,因此需要通过FileLocator.toFileURL 进行转换。这可能会导致插件 jar 在临时位置解压缩,以便返回“文件”URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      相关资源
      最近更新 更多