簡體   English   中英

如何從IProject獲取Bundle-SymbolicName?

[英]How to get the Bundle-SymbolicName from an IProject?

我正在為eclipse項目編寫向導,並希望在Manifest.MF包括另一個插件Require-Bundle

我有要包含的IProject ,是否可以在不解析Manifest.MF情況下訪問其Bundle-SymbolicName 還是有其他方法可以避免手動解析?

IProject可能不表示插件,並且沒有任何直接API來獲取插件ID。

您可以使用普通的Java Manifest類使用類似以下內容的方式查看MANIFEST.MF:

IProject project = ...

IFile manifestResource = project.getFile(new Path("META-INF/MANIFEST.MF"));
if (manifestResource.exists()) {
    try (InputStream stream = manifestResource.getContents()) {
        Manifest manifest = new Manifest();
        manifest.read(stream);

        String symbolicName = manifest.getMainAttributes().getValue("Bundle-SymbolicName");
    } catch (CoreException | IOException ex) {
       ...
    }
}

該代碼改編自Eclipse PDE用於查找插件的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM