来自自己包的Eclipse文件URL

来自自己包的Eclipse文件URL,eclipse,eclipse-rcp,Eclipse,Eclipse Rcp,这不是我真正的问题,而是一个关于良好实践的问题 我想解析我的eclipse插件文件的URL,但是有很多方法可以实现。我找不到应该选择哪一个 首先:我应该如何获得我的包裹?通过激活器还是平台 Bundle bundle = Platform.getBundle("my.bundle.id"); 或 另一个问题是如何获取url。或者 URL url = FileLocator.find(bundle, new Path("folder/file.txt"), null); 或 所有这些都有效,但

这不是我真正的问题,而是一个关于良好实践的问题

我想解析我的eclipse插件文件的URL,但是有很多方法可以实现。我找不到应该选择哪一个

首先:我应该如何获得我的包裹?通过激活器还是平台

Bundle bundle = Platform.getBundle("my.bundle.id");

另一个问题是如何获取url。或者

URL url = FileLocator.find(bundle, new Path("folder/file.txt"), null);


所有这些都有效,但哪种方式最好?它有什么区别吗?

不,它没有任何区别(实际上
FileLocator
使用
bundle.getEntry
)。使用
捆绑包的优点是:getEntry
不依赖于eclipse捆绑包;我不知道这个事实是否与你有关


我总是在RCP中使用
FileLocator
方法,但使用
openStream
方法读取捆绑包中的文件内容。

谢谢Tom,关于第一个问题,解决捆绑包有什么建议吗?我更喜欢
Platform.getBundle
,因为它使用PackageAdmin服务(OSGi框架服务)。这也是一种始终有效的方法(如果您没有Activator或捆绑包未启动,也是如此)
URL url = FileLocator.find(bundle, new Path("folder/file.txt"), null);
URL url = bundle.getEntry("folder/file.txt");