`

Rcp 绝对路径和相对路径的获取

阅读更多
从插件/RCP中取得文件路径

1)从插件中获得绝对路径:
    AaaaPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath());

通过文件得到Project:
IProject project = ((IFile)o).getProject();

2)通过文件得到全路径:
①String path = ((IFile)o).getLocation().makeAbsolute().toFile().getAbsolutePath();

②IFolder srcFolder =

ResourcesPlugin.getPlugin().getWorkspace().getRoot().getProject(

"yourprojectname").getFolder("src");
   IFile ifile = srcFolder.getFile("hibernate.cfg.xml");

String path= ifile.getLocation().makeAbsolute().toFile().getAbsolutePath();
其中path 得出的是真正的绝对路径.

3)得到整个Workspace的根:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

4)从根来查找资源:
IResource resource = root.findMember(new Path(containerName));

5)从Bundle来查找资源:
Bundle bundle = Platform.getBundle(pluginId);
URL fullPathString = BundleUtility.find(bundle, filePath);

6)得到Appliaction workspace:
Platform.asLocalURL(

PRODUCT_BUNDLE.getEntry("")).getPath()).getAbsolutePath();

7)得到runtimeworkspace:
Platform.getInstanceLocation().getURL().getPath();

8)从编辑器来获得编辑文件:
IEditorPart editor = ((DefaultEditDomain)(parent.getViewer().getEditDomain())).getEditorPart();
IEditorInput input = editor.getEditorInput();
if(input instanceof IFileEditorInput){
    IFile file = ((IFileEditorInput)input).getFile();
}



得到项目的绝对路径:
    FileLocator.toFileURL(

Platform.getBundle(Application.PLUGIN_ID).getEntry("")).getPath()



    10)如果你的RCP工程没有发布,得到的是eclipse的路径。如果你的RCP工程已经发布(假如在D:\RCP\下面),得到的路径就是D:/RCP/。

Location installLoc = LocationManager.getInstallLocation();
     String path = null;
     String installPath = null;
     if (installLoc != null)
     { 

URL installURL = installLoc.getURL();
         // assume install URL is file: based
         path = installURL.getPath();
     }

installPath = path.substring(1, path.length());

11)显示相对路径的image的方法。如下:

①ImageDescriptor imageDes =

AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID,        "/images/schemabase.jpg");

Image image = imageDes.createImage();

②Put a class in image directory.
For instance:
../../resource/icon1.bmp
../../resource/Resource.class

InputStream istream = Resources.class.getResourceAsStream("icon1.bmp");
Image icon_image = new Image(Display.getCurrent(), istream);



12)获取plugin根目录路径的方法
public static String getRoot(String pluginID){
  String path=null;
  try {
    path = FileLocator.toFileURL(
    Platform.getBundle(pluginID).getEntry("")).getPath();
    path = path.substring(path.indexOf("/") + 1, path.length());
  } catch (Exception e) {
    e.printStackTrace();
  }
  return path;
}



13)eclipse 3.1.1以后用:
     URL bundleRootURL = YourPlugin.getDefault().getBundle()
          .getEntry("/");
     try {
        URL pluginURL = Platform.resolve(bundleRootURL);
        return pluginURL.getPath();
     } catch (IOException e) {

     }

其中URL pluginURL = Platform.resolve(bundleRootURL);
eclipse 3.2M6建议使用FileLocator#resolve(URL)替代 Platform.resolve

2
0
分享到:
评论

相关推荐

    RCP 嵌入Google map(rcp执行JavaScrit方法,解决打包后路径问题)

    1. **相对路径**:使用相对路径而不是绝对路径来引用HTML文件。这需要确保HTML文件与RCP应用的主入口点在同一目录下。 2. **资源加载器**:通过Eclipse的`Platform.getBundle()`方法,获取到包含`map.html`的bundle...

    RCP的VIEWER和EDITOR

    在RCP中,VIEWER和EDITOR是两个核心组件,它们在构建用户界面时起着至关重要的作用。 VIEWER是RCP中的一个重要组成部分,它主要负责数据的展示和交互。VIEWER可以看作是一种特殊的控件,它可以显示不同类型的数据,...

    RCP,RCP开发

    总的来说,RCP和OSGI的结合提供了一种高效、灵活且易于维护的桌面应用开发方式,开发者可以充分利用它们的优势来构建复杂、功能丰富的应用程序。在实际项目中,理解并熟练运用RCP和OSGI技术,能大大提高开发效率和...

    RCP和CXF做的例子

    【标题】"RCP和CXF做的例子"指的是一个基于 Rich Client Platform (RCP) 和 Apache CXF 的应用程序示例。RCP 是 Eclipse 平台的一部分,它提供了一个框架,用于构建功能丰富的桌面应用程序。而 CXF 是一个开源服务...

    RCP2.6和RCP4.5情景下中亚五国棉花和冬小麦逐年需水量数据集(2020-2100).rar

    RCP(Representative Concentration Pathways,代表性浓度路径)是气候变化研究中的一个重要概念,用于描述未来不同温室气体排放情景对全球气候变化的影响。RCP2.6代表较低的温室气体排放情景,而RCP4.5则代表中等...

    RCP在线升级,RCP在线升级

    本文将详细介绍RCP在线升级的过程和相关技术。 首先,理解RCP升级的基础架构是至关重要的。RCP应用的更新通常基于p2(Provisioning Platform 2),这是Eclipse中用于软件管理、部署和更新的组件。p2提供了一种元...

    RCP 开发实例 源码

    - PDE(Plug-in Development Environment)是Eclipse中专门用于RCP和OSGi开发的工具集。 通过学习这个实例,开发者可以了解RCP的基本架构和组件,理解如何创建和组织UI元素,以及如何处理用户交互。虽然没有涉及...

    RCP与GEF课件,介绍RCP和GEF各组成部分和工作原理

    通过RCP和GEF结合,开发者可以快速创建出功能强大的图形化应用程序,例如数据库建模工具、UML建模工具或者是软件工程中的配置管理工具。理解并掌握这两个框架的工作原理和组件,对于开发高质量的桌面应用至关重要。...

    rcp for java one

    RCP提供了一个基础结构,包括窗口系统、工作台管理器、视图和编辑器等核心组件,使得开发者可以专注于业务逻辑和用户界面的设计,而不是底层架构。 【JavaOne大会】: JavaOne是Java开发者的重要会议,始于1997年,...

    Eclipse RCP应用系统开发方法与实战(源代码)

    总的来说,"Eclipse RCP应用系统开发方法与实战"这套资源为开发者提供了一条深入学习和实践Eclipse RCP的路径。通过逐步学习并实践这些章节中的源代码,开发者能够全面掌握RCP开发技术,从而在实际项目中发挥出...

    rcp 学习资料下载,一个简单的rcp例子

    这个"rcp 学习资料下载,一个简单的rcp例子"是一个针对初学者的学习资源,旨在帮助他们快速理解和掌握RCP的开发技术。 在Eclipse RCP中,开发者可以利用工作台(Workbench)、视图(View)、编辑器(Editor)、透视...

    rcp menubarpath和toolbarpath的参考值

    ### Eclipse RCP MenubarPath 和 ToolbarPath 参考值详解 #### 一、MenubarPath 概述 在 Eclipse RCP(Rich Client Platform)应用程序中,`menubarPath` 是用来定义菜单结构的一种方式。通过指定不同的路径,可以...

    Eclipse Rcp

    RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面设计。 Eclipse原本是一个Java IDE,由IBM捐献给开源社区后,其可扩展性和丰富的插件生态系统吸引了众多开发者。...

    Eclipse RCP开发教程

    RCP 应用可以引入外部 JAR 包来扩展其功能,只需在项目的类路径中包含这些 JAR,并在需要的地方导入相应的类。 **8. 添加标志和帮助** 标志(icons)为应用程序提供视觉标识,帮助(Help)系统为用户提供指南和文档...

    RCP-1500中文操作手册.pdf

    索尼公司生产的RCP-1500系列遥控面板(包括RCP-1500、RCP-1501和RCP-1530型号)是用于配置和控制演播室级及广播级摄像机的专业设备。这些设备提供了高级的操作便利性和功能的多样性,使得用户能够高效地进行摄影机的...

    rcp工程的描述

    每个插件都有自己的类路径、资源和扩展点,可以独立于其他插件进行开发。插件之间通过API相互交互,实现功能集成。例如,一个插件可能负责用户界面展示,另一个插件则处理数据持久化。 3. **RCP的架构** RCP应用...

    RCP 菜单与工具栏小结

    此外,RCP还提供了各种预定义的命令和动作工厂,如“Save”、“Copy”和“Cut”,这使得常见的操作可以快速实现,无需从头编写代码。 ### 结论 RCP菜单与工具栏是RCP应用的重要组成部分,它们不仅提供了功能访问的...

    在RCP中显示JFreeChart报表

    1. **引入依赖**:首先,你需要将JFreeChart的jar包添加到你的RCP项目类路径中。在描述中提到,这些依赖已经包含在提供的压缩包"RCPJFreeChart"里。如果没有,你可以在JFreeChart官方网站下载最新版本,或者通过...

Global site tag (gtag.js) - Google Analytics