`
hys2006hr
  • 浏览: 1564 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Eclipse RCP开发中的路径问题

阅读更多

    在进行Eclipse RCP开发时,经常需要读取文件系统中的文件,这就涉及到一个路径的问题,如果使用绝对路径的话,程序的编写会非常不方便,所以在我们编写程序时,使用最多的还是相对路径,现将有关相对路径的问题列举如下:

1)        “.\\define\\extend\\nav_blank.jpg”,此相对路径相对的是RCP平台,如果是在Eclipse开发环境中,该路径在Eclipse根目录下,如果导出为产品后,该文件夹将在产品的根目录下;

2)        插件一旦导出为Jar文件后,其内容是不能修改的,所以如果配置文件保存在插件中的话,对配置文件的修改将会在 \configuration\org.eclipse.osgi下产生一个临时文件用以保存修改后的值;

3)        如果不是以插件的方式运行而是直接从main函数来运行的话,相对路径均是相对项目的根目录而言。

另外,提供一个在插件中获取真实路径的方法:

public class GetPath {
	/**
	 * 获得文件路径
	 * @param bundleID
	 * @param entry
	 * @return
	 */
	public  static String getRealPath(String bundleID, String path) { 
		if (path == null || path.equals(""))
			return "";
		char p=path.charAt(0);
		if(p=='C'||p=='D'||p=='E'||p=='F'||p=='G'||p=='H'||p=='A'){
			return path;
		}
		URL urlentry = null; 
		String strEntry = ""; 
		try { 
			Bundle bundle = Platform.getBundle(bundleID); 
			urlentry = bundle.getEntry(""); 
			strEntry = FileLocator.toFileURL(urlentry).getPath(); 
		} catch (IOException e1) { 
			e1.printStackTrace();
		} 
		return strEntry+path; 
	} 
	/**
	 * 获得安装路径
	 * @param bundleID
	 * @param path
	 * @return
	 */
	public static String getInstallPath(String path){

		char p=path.charAt(0);
		if(p=='C'||p=='D'||p=='E'||p=='F'||p=='G'||p=='H'||p=='A'){
			return path;
		}		
		String strEntry = null; 
		String installPath = null;
		try { 
			Location installLoc = LocationManager.getInstallLocation();
			if (installLoc != null)
			{
				URL installURL = installLoc.getURL();
				strEntry = installURL.getPath();
			}
			installPath = strEntry.substring(1, strEntry.length());

		} catch (Exception e1) { 
			e1.printStackTrace();
		} 
		return installPath+path;
	}
}

 

 

分享到:
评论

相关推荐

    Eclipse RCP Plugin 开发自学入门指南(CEC首发)

    Eclipse RCP 允许开发者使用 eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中 已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP 入手可能会比较困难、费时。接下 来我们将主要讲述如何让RCP ...

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    最近抽些时间,更新到eclipse3.6上来,既作为为广大Eclipser入门plugin/RCP开发的一个方便之门,也是对自己近年来学习的一个总结吧。 每一章都会单独提取出来,并尽可能的独立于其他章节,更新中的源代码工程也会...

    Eclipse 核心编程--插件、界面与Web开发

    全书共分4篇10章,以“Eclipse快速入门篇→Eclipse图形应用开发篇→Eclipse RCP开发篇→Java Web应用程序开发篇”为线索具体展开,涵盖了Eclipse插件、界面和Web开发的方方面面的内容。书中给出大量实际、生动的案例...

    Eclipse权威开发指南2.pdf

    1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 工具与应用程序的集成平台..... 6 1.3.2 Java开发...

    Eclipse权威开发指南1.pdf

    1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 工具与应用程序的集成平台..... 6 1.3.2...

    开发项目用SWING与RCP与SWT.JFACE的分析

    SWT是作为Eclipse开发环境的一个插件形式存在,可以在${你的eclipse安装路径}\plugins路径下的众多子目录下去搜索SWT.JAR文件,在找到的JAR文件中包含了SWT全部的Java类文件。因为SWT应用了JNI技术,因此同时也要...

    Eclipse权威开发指南3.pdf

    1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 工具与应用程序的集成平台..... 6 1.3.2...

    Eclipse RAP2.1部署到Tomcat总结

    本人只会用RCP开发个C/S的程序,最近看到RAP项目想试一下,在百度上看了很多文章关于如何部署RAP到Tomcat,有些文章已经过时的了,还是没能理解清楚,最后弄了2天时间,搞来搞去没办法调试出来,最后都想放弃了。...

    Eclipse_Swt_Jface_核心应用_部分19

    第3章 Eclipse开发环境概述 22 3.1 Eclipse界面一览 22 3.2 Eclipse项目的文件结构 23 3.2.1 设置编译后.class文件的保存目录 23 3.2.2 导入项目使用的包 25 3.2.3 设置编译方式 26 3.2.4 运行程序 27 ...

    java源码剖析-maracas:Maracas是用Rascal编写的源代码和字节码分析框架,旨在支持JavaAPI和客户端代码的共同发展。

    在Eclipse中运行Maracas 准备,设置... 安装Eclipse RCP和RAP。 从其更新站点https://update.rascal-mpl.org/unstable安装不稳定版本的Rascal插件。 单击以获取更多信息。 从其中克隆Rascal项目java-build-manager并...

    单点登录源码

    | ├── zheng-upms-dao -- 代码生成模块,无需开发 | ├── zheng-upms-client -- 集成upms依赖包,提供单点认证、授权、统一会话管理 | ├── zheng-upms-rpc-api -- rpc接口包 | ├── zheng-upms-rpc-...

Global site tag (gtag.js) - Google Analytics