搞了整整两天才终于将项目从 Eclipse 中导了出来,网上虽然有许多可供参考的标准导出步骤,但对于具体的项目来说可能会因为版本的不同或者是插件的不同产生各种各样的问题。下面是我在导出 RCP 程序过程中的一些心得,希望对大家 有些帮助。
- 有样学样法则真的是很重要,特别是当你无法马上理解 Eclipse 内部机制的时候更是如此。自己一个人摸索很久还不如照着现成的去做更加有效率。可以在导出 RCP 项目时察看示例源码 Hyperbola ,是一个聊天程序, Eclipse.Rich.Client.Platform.Designing.Coding.and.Packaging.Java.Applications 书中的示例。该书网上有 chm 版本的下载。源码下载链接: http://eclipsercp.org/book/cd.php 。 注意:当出现错误时一定要照着源码的配置一项一项的检查,重点是检查 .product 文件和 PDE 中 Build 项和 MENIFEST.MF 。许多时候一个非常细小的差别往往使程序导出失败。
- 在发布 RCP 以及导出插件包时,其他相关的插件( Required Plugins )必须打包后加载进 Eclipse 插件中(可以采用 Link 方式),而不能作为 WorkSpace 中打开的项目加载在插件依赖项中,这样才能顺利将插件和 RCP 项目导出。或者不加载进 Eclipse 插件中,只要将其作为第三方插件,在 PDE 中 runtime 选项组添加该插件再打包。或者在 WorkSpace 该插件项目中新增加一个文件夹,在其中放入所依赖的插件项。然后在 PDE 中 Build 选项组二进制构建子选项组中将其包含也可。
- 在 PDE 中 Build 选项组中的运行时信息,默认名是一个“ . ”,意思是直接在 plugins 目录下生成 jar 文件,如果给它起自己的名称的话,将会根据那个名称在 plugins 目录下生成一个文件夹,然后在该文件夹里才会有自己的 jar 文件。在导出 Eclipse RCP 项目时,主插件应该保持默认名,使其生成的 jar 文件在 plugins 目录下便存在,否则便会出现应用程序找不到的错误。
- MENIFEST.MF 里面的代码跟最终的结果关系很大。下面把其中的格式复制出来,以便有一些参考性的东西。
1 Manifest - Version: 1.0
2 Bundle - ManifestVersion: 2
3 Bundle - Name: MyProject Plug - in
4 Bundle - SymbolicName: MyProject; singleton: = true
5 Bundle - Version: 1.0 . 0
6 Bundle - Localization: plugin
7 Require - Bundle: org.eclipse.ui,
8 org.eclipse.core.runtime,
9 org.eclipse.core.resources,
10 org.eclipse.ui.ide,
11 Eclipse - AutoStart: true
12 Export - Package: myProject,
13Bundle-Activator: myProject.MyProjectPlugin
其中,12行Export-Package项是你希望外部可见的包,写不写对导出项目没有影响。
下面第13项在MENIFEST.MF中可能会自动生成,在导出插件时要注意将其去掉,否则会产生错误。(具体原因还未知,希望高人指点迷津). 其他的应该不用说了吧?!
分享到:
相关推荐
Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序。它提供了一整套工具和功能,使得开发者可以构建出具有丰富用户界面的应用。在开发完成后,我们需要将这些应用打包并发布,以便用户...
这个压缩包中的“ECLIPSE RCP项目源程序”包含了使用Eclipse RCP开发的一个项目的完整源代码,并且有中文注释,这对于初学者或有经验的开发者来说都是一个宝贵的资源。 Eclipse RCP的核心概念主要包括以下几个方面...
RCP导出EXE 老大难问题。 RCp 程序导出步骤,保证能够导出~
创建 Eclipse RCP 项目需要遵循以下步骤: 1. 下载和安装 Eclipse RCP 开发环境。 2. 新建一个 RCP 项目,选择“Rich Client Application”模板,并填入项目名称和其他信息。 3. 选择插件模板,并添加必要的视图和...
Eclipse RCP,全称Eclipse Rich Client Platform,是一个基于Java的框架,用于构建桌面应用程序。这个框架由Eclipse基金会维护,是Eclipse IDE的一部分,允许开发者创建功能丰富的、可扩展的应用程序,拥有类似IDE的...
Eclipse RCP,全称Eclipse Rich Client Platform,是一种基于Java的开源框架,用于构建桌面应用程序。它由Eclipse基金会维护,是Eclipse IDE的核心组成部分,提供了丰富的UI组件、插件系统以及工作台(Workbench)...
eclipse RCP Plug-in开发自学教程 eclipse RCP(Rich Client Platform)是一种基于eclipse的插件式开发平台,允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序。RCP插件式开发方式可以重用eclipse中的方法...
### Eclipse RCP 入门详解 #### 一、Eclipse RCP 概述 **Eclipse RCP**(Rich Client Platform)是一种构建丰富客户端应用程序的框架,它利用Eclipse平台的强大功能来创建高度定制化的桌面应用程序。通过RCP,...
### Eclipse RCP 详细教程 #### 1. 富客户端平台 ##### 1.1. 概述 Eclipse RCP(Rich Client Platform)是一种基于Java的框架,它允许开发者构建高度可定制和可扩展的桌面应用。这些应用通常具有丰富的用户界面,...
要在Eclipse RCP项目中使用这个语言包,首先需要将其导入到Eclipse环境中。然后,在项目的插件配置中,引用该语言包作为依赖,这样在运行时,Eclipse会自动加载并显示中文界面。对于开发插件,还需要确保插件的本地...
"学习学习,快来下"则提示这个项目适合学习Eclipse RCP的开发者,提供了一个实际案例去理解和实践RCP的开发流程。 【标签】"eclipse RCP mp3 mp3工程"进一步强调了这个项目的两大关键元素:Eclipse RCP平台和MP3...
Eclipse RCP是一种基于Eclipse平台的富客户端平台技术,它允许开发者创建独立于Eclipse环境的Java桌面应用程序。RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面...
11. **实战项目**:书中很可能会包含一个或多个实际项目案例,引导读者一步步实现一个完整的Eclipse RCP应用,从而将理论知识转化为实践技能。 通过阅读这本书,开发者可以掌握Eclipse RCP的开发技巧,理解其设计...
在“Eclipse RCP 例子程序”中,我们可能找到一系列的示例代码和项目,这些示例展示了如何利用Eclipse RCP的各种组件和机制来构建实际的应用。以下是一些关键的知识点: 1. **插件系统**:Eclipse RCP的核心是其...
Eclipse Rich Client Platform(RCP)是Eclipse框架下的一个核心组成部分,用于构建桌面应用..."Eclipse RCP培训.zip"中的内容可能涵盖了这些方面,包括理论讲解、代码示例、练习项目等,是学习Eclipse RCP的好资源。
在"菜鸟Eclipse RCP学习之路"中,初学者应该会了解到如何创建一个新的Eclipse RCP项目。这通常涉及到以下几个步骤: 1. 安装Eclipse IDE for RCP and RAP Developers版本,这是一个专门为RCP开发定制的集成开发环境...
然后,你可以通过新建一个Plug-in Project来启动你的项目,配置项目属性,如导出的包和依赖项。 在"**Eclipse Plug-in RCP开发方法详解**"中,你可能会学到如何创建基本的UI元素,如视图和编辑器。视图通常通过实现...
Eclipse RCP中使用第三方包 Eclipse RCP(Rich Client Platform)是一种基于Java的插件式软件架构,允许开发者创建跨平台的桌面应用程序。使用Eclipse RCP,可以快速构建功能强大的客户端应用程序。然而,在实际...
### Eclipse RCP 插件开发指南 #### Eclipse RCP Plugin 开发快速入门 Eclipse RCP(Rich Client Platform)插件开发是构建基于Eclipse框架的应用程序的核心技术之一。本指南旨在帮助开发者从零开始掌握Eclipse ...
Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序。它基于Java,由Eclipse基金会维护,是Eclipse IDE的核心组成部分。RCP允许开发者利用已有的插件系统构建可定制、模块化的应用,具有...