2011-06-06 47 views
3

有沒有人知道如何從自制的Eclipse插件中使用uri獲取文件?從eclipse-plugin訪問相對路徑

絕對路徑就沒有問題了:

URI.createFileURI("C:/Users/hp/workspace(dke)/SMartGen/StarSchema.profile.uml"); 

但是我怎麼訪問本地資源比較?

URI.createFileURI("jar:file:/%ECLIPSE_HOME%/plugins/SMartGen.jar!StarSchema.profile.uml"); 

不以這種方式工作....

快樂每一個答案。

LG馬丁

回答

3

使用FileLocator

例子:

URL iconUrl = FileLocator.find(Platform.getBundle("myBundle"), new Path("icons/someIcon.png"), null); 

這將讓位於在捆綁「myBundle」中的「圖標」文件夾中的文件「someIcon.png」的URL。

+0

THX, 作品非常好 – Martin 2011-06-08 07:00:18

+0

但現在我得到了另一個問題,改變 的java.net.URL到 org.eclipse.emf.common.util.URI url.toUri()和util.URI在一些種類不一樣 我會爲此發佈另一個問題。 – Martin 2011-06-08 07:11:43

+0

如果您確實需要該文件的絕對URL,請使用來自FileLocator.find的結果URL中的FileLocator.resolve(url)。 – Simon 2014-08-26 13:27:56

0

爲了從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()也。