从eclipse插件访问相对路径
有人知道如何从自制的Eclipse插件中获取具有uri的文件吗 绝对路径不会有问题:从eclipse插件访问相对路径,eclipse,eclipse-plugin,eclipse-rcp,uri,relative-path,Eclipse,Eclipse Plugin,Eclipse Rcp,Uri,Relative Path,有人知道如何从自制的Eclipse插件中获取具有uri的文件吗 绝对路径不会有问题: URI.createFileURI("C:/Users/hp/workspace(dke)/SMartGen/StarSchema.profile.uml"); 但是我如何相对地访问本地资源呢 URI.createFileURI("jar:file:/%ECLIPSE_HOME%/plugins/SMartGen.jar!StarSchema.profile.uml"); 这样不行 对每一个答案都感到高兴
URI.createFileURI("C:/Users/hp/workspace(dke)/SMartGen/StarSchema.profile.uml");
但是我如何相对地访问本地资源呢
URI.createFileURI("jar:file:/%ECLIPSE_HOME%/plugins/SMartGen.jar!StarSchema.profile.uml");
这样不行
对每一个答案都感到高兴
lg martin使用。示例:
URL iconUrl = FileLocator.find(Platform.getBundle("myBundle"), new Path("icons/someIcon.png"), null);
这将获取文件“someIcon.png”的URL,该文件位于捆绑包“myBundle”中的“icons”文件夹中。要从eclipse中获取资源,可以使用
org.osgi.framework.bundle.getEntry(String)
。它返回一个标准的java.net.URL
,也可用于获取InputStream
以供使用。它的优点是不关心插件是在目录形式、jar形式还是在工作区中
Bundle bundle = FrameworkUtil.getBundle(MyClass.class);
URL url = bundle.getEntry("StarSchema.profile.uml");
URL也有一个方便的
toURI()
方法。但是现在我在将java.net.URL更改为org.eclipse.emf.common.util.URI URL时遇到了另一个问题。toURI()和util.URI在某种程度上是不同的,我将为它发布另一个问题。如果您确实需要文件的绝对URL,请使用FileLocator.resolve(URL)
从FileLocator.find中查找所生成的URL。