2015-06-26 91 views
0

我正在開發一個eclipse插件,我想根據選擇的菜單選項運行一些腳本,這些腳本是jar本身的一部分。當我從eclipse本身作爲eclipse應用程序運行插件項目時,我能夠獲得這些腳本的路徑。但是當項目作爲插件(jar)導出時,放置在'eclipse/features'中並在eclipse中使用時,在解決jar中這些腳本的路徑時存在問題。 我嘗試了以下幾種不同的方式,可以在SO中找到,但問題未解決。 基本上我想知道如何以編程方式獲取插件的路徑,以便從插件的路徑中我可以構建腳本的實際路徑。在eclipse插件中查找資源的路徑

1d中的插件的:爲myplugin

試驗1:

String scriptLocation = FileLocator.toFileURL(Platform.getBundle("MyPlugin").getEntry("src/"+scriptName)).getPath(); 

試驗2:

URL url = new URL("platform:/features/ade/src/"+scriptRelativePath); 

String scriptLocation = FileLocator.toFileURL(url).getPath(); 
// This gave a runtime error, :features is not applicable to protocol 'platform' 

試驗3:

URL url = new URL("platform:/plugin/ade/src/"+scriptRelativePath); 

String scriptLocation = FileLocator.toFileURL(url).getPath(); 

回答

1

使用:

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

URL url = FileLocator.find(bundle, new Path("relative path"), null); 

url = FileLocator.toFileURL(url); 

'相對路徑'是相對於插件根的路徑。

FileLocator.toFileURL可能會將資源解包到臨時位置。