【问题标题】:Eclipse , How to get the URI of a classEclipse,如何获取类的 URI
【发布时间】:2022-02-21 06:47:21
【问题描述】:

类> clazz = IWorkbench.class ;

不知道有没有什么API可以帮我获取class的URI,这个URI是用来打开一个编辑器的

尝试制作自己的网址并成功,但我仍然想使用eclipse API

public static IEditorPart openClassInEditorFromURI(URI uri) {
    IWorkbenchPage page = BitFanUI.getLastActivateWindow().getActivePage() ;
    if( page == null ) {
        return null ;
    }
    try {
        IFileStore fileStore = EFS.getStore( uri ) ;
        return IDE.openEditorOnFileStore(page, fileStore);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null ;
}

【问题讨论】:

    标签: eclipse rcp


    【解决方案1】:

    通常,(运行时)类没有 URI。 (您可以从字节数组中动态定义一个类...)

    话虽如此,大多数以正常方式加载的类都会有一个资源 URI。如果您知道完全限定的类名和加载它的类加载器,您应该能够执行以下操作:

    1. 将类的完全限定名转换为其资源路径。例如,“com.example.MyClass”通常会映射到“/com/example/MyClass.class”。

    2. 使用classloader.getResource(resourcePath) 获取URI。

    但请注意,URI 可能无法在其他上下文中解析。


    我不认为 Eclipse 提供了执行上述操作的 API。 (我找不到。)


    更新 - 如果您尝试以编程方式从类的全名中查找源 URI,那么这可能会提供答案:

    请注意,如果您在 Eclipse 插件的上下文中确实有一个 Class 对象(正如您的 Class<?> clazz = IWorkbench.class sn-p 所暗示的那样),那么您可以从 Class 对象中提取完整的类名。但这听起来有点奇怪……

    【讨论】:

    • 我认为这可能与this 的问题相同,他们想打开 Eclipse 类的源代码,如 Eclipse“打开类型”对话框
    • 看来只能自己写API了:)
    猜你喜欢
    • 2021-05-04
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2010-12-23
    • 2019-08-28
    • 1970-01-01
    相关资源
    最近更新 更多