- 浏览: 408103 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zyu67:
这个类运行不起来呀 这类如何导出数据呀
一个数据库连接Java工具类和数据迁移类 -
kobe7777:
你好,请问我想写个excelToExcel 另存一个excel ...
Jacob 另存为Word、Excel -
di1984HIT:
记录一下学习。
Eclipse 平台架构 -
di1984HIT:
鞋的不错啊。呵呵额
一个数据库连接Java工具类和数据迁移类 -
Jameslyy:
确认jacob dll是否已经放入系统路径,jacob版本不同 ...
Jacob 另存为Word、Excel
Eclipse 运行时(Runtime)概述
Eclipse 运行时定义了所有其他插件所依赖的插件(org.eclipse.osgi 和 org.eclipse.core.runtime),运行时负责定义插件的结构及其背后的实现细节(bundles和类加载器),运行时也负责发现和执行Eclipse 主程序,维护一个包含插件和它们所实现的扩展与扩展点的注册表。同时,运行时提供了各种各样的工具,例如日志、调试跟踪、适配器、首选项存储和一个并发基础工具。
1. 运行时插件模型
当运行Eclipse程序时,Eclipse运行时会随着运行。运行时实现了Eclipse的插件模型和基础结构,维护所有的插件及插件所提供的功能。
插件就是一个向Eclipse 系统贡献代码(或者是文档,或者两者都包含)的具有组织结构、通过一种结构化方式描述的组件,插件可以定义扩展点,供其他的插件扩展。当一个插件创建了一个扩展点的实现时,我们把这叫做向平台添加了一个扩展,扩展和扩展点是通过插件的清单文件(plugin.cml)声明的。
通过一个通用扩展模型为插件提供了一个的结构化的方法,描述插件如果被扩展和如果扩展其他插件。定义一个扩展点如果顶任何其他的API,不同的是扩展点是通过XML而不是代码来声明的。同样,客户插件也使用XML来描述所实现的扩展。
运行时的一个重要机制是,如果没有使用到安装到平台中的插件,插件就不会占用内存和产生性能损耗。平台扩展模型的声明式的特性使得运行时能够在不运行插件的同时获得插件所提供的扩展点和扩展。这样,可以安装很多插件,但是除非用户的操作请求到插件所提供的功能,插件就不会被激活。对于提供一个可伸缩的、健壮的平台来说这是一个重要的特性。
1.1 插件和束(bundles)
插件的实现机制是用OSGI框架实现的,从这个角度来说,一个插件其实就是个OSGI bundle,bundle和所关联的类定义和实现了类加载过程、先决条件管理和bundle的生命周期。在接下来的讨论中,我们会交换使用plug-in 和bundle,除非是讨论框架中的特殊类。
1.1.1 plug-in
Plugin 类表示一个运行在Eclipse平台中的插件,方便于集中管理插件的生命周期和整体语义。插件可以在其生命周期的start 和stop 阶段实现特定的功能。每一个生命周期方法都包含一个BundleContext 的引用,BundleContext 提供了插件的上下文信息。
插件生命周期的start部分值得特别讨论。我们已经看到,不需要运行插件的任何代码,就可以通过插件的清单文件获得插件的信息。通常用户在工作台中的一些操作会引起一个能够触发插件启动的事件链。从实现的角度来看,除非需要加载插件中的类,插件就不会被启动。
start 方法方便于实现插件的初始化和注册工作,但是必须认识到,插件能够在许多不同的环境下被启动,一些例如获得一个图片来装饰一个对象这样简单的过程都会导致加载插件的类,以致引起插件的启动。过早的初始化操作会导致插件在实际需要很久之前就会加载代码和数据。这样的话,就有必要仔细检查一下插件的初始化工作,考虑初始化的代替方法。
- 如果可以快速执行,注册的工作,例如在插件启动期间注册监听器,或者启动后台线程就是比较合适的,但是,如果注册工作有副作用,例如要初始化大的数据结构或者运行不相关的操作,建议访问插件的数据是才触发这些注册行为。
- 当第一次访问数据时,数据的初始化最好是延迟进行的,而不是在启动的代码中执行。这能够确保在真正使用之前不会创建大的数据结构。
... IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint point = registry.getExtensionPoint("org.eclipse.ui.views"); if (point == null) return; IExtension[] extensions = point.getExtensions(); for (int i = 0; i < extensions.length; i++) readExtension(extensions[i]); //get the information about each extension ...
- org.eclipse.core.contenttype - Content type mechanism
- org.eclipse.core.jobs - Concurrency infrastructure
- org.eclipse.core.net - Network and proxy management infrastructure
- org.eclipse.equinox.app - Application Model
- org.eclipse.equinox.common - Common basic functionality
- org.eclipse.equinox.preferences - Runtime preferences
- org.eclipse.equinox.registry - Extension registry
- org.eclipse.equinox.security - Security infrastructure
- Instance (实例) 范围首选项存储在工作空间,或者平台的运行实例的位置
- Configuration (配置) 范围首选项存储在平台的安装位置,在不同的工作空中共享。例如,如果用户安装了一个单一的Eclipse 平台,但是运行了几个不同的工作空间,configuration 级别范围的首选项可以在不同工作空间中共享。
- Default (默认) 范围首选项表示首选项的默认值,平台不会修改或存储它们。
... IPreferencesService service = Platform.getPreferencesService(); boolean value = service.getBoolean("com.example.myplugin", "MyPreference", true, null); //do something with the value. ...
... IPreferencesService service = Platform.getPreferencesService(); Preferences configurationNode = new ConfigurationScope().getNode("com.example.myplugin"); Preferences instanceNode = new InstanceScope().getNode("com.example.myplugin"); Preferences[] nodes = new Preferences[] {configurationNode, instanceNode}; stringValue = service.get("MyPreference", "true", nodes); //do something with the value. ...
... IPreferencesService service = Platform.getPreferencesService(); Preferences root = service.getRootNode(); Preferences myInstanceNode = root.node(InstanceScope.SCOPE).node("com.example.myplugin"); if (myInstanceNode != null) { value = node.getBoolean("MyPreference", "true"); //do something with the value. } ...
- eclipse.product - 标识和平台运行时一同运行的产品,产品提供了商标信息(窗口小图片、标题栏等),定义了一个默认的应用。
- eclipse.application - 标识和平台运行时一同运行的应用。这个选项覆盖了产品定义的默认应用。
import org.eclipse.equinox.app.IApplication; import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; /** * This class controls all aspects of the application's execution */ public class Application implements IApplication { /* (non-Javadoc) * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext) */ public Object start(IApplicationContext context) throws Exception { Display display = PlatformUI.createDisplay(); try { int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); if (returnCode == PlatformUI.RETURN_RESTART) return IApplication.EXIT_RESTART; else return IApplication.EXIT_OK; } finally { display.dispose(); } } /* (non-Javadoc) * @see org.eclipse.equinox.app.IApplication#stop() */ public void stop() { if (!PlatformUI.isWorkbenchRunning()) return; final IWorkbench workbench = PlatformUI.getWorkbench(); final Display display = workbench.getDisplay(); display.syncExec(new Runnable() { public void run() { if (!display.isDisposed()) workbench.close(); } }); } }
- 插件org.eclipse.core.net 的包 org.eclipse.core.net.proxy 提供的代理支持
- com.jcraft.jsch 插件提供的SSH2 支持。客户程序应该利用 org.eclipse.jsch.core 包中的API 来确保能够遵守首选项页面中的设置。
发表评论
-
插件开发——基于Action的基本平台扩展点 二 : viewActions
2011-01-12 16:35 1939org.eclipse.ui.viewActions 通过插 ... -
插件开发——基于Action的基本平台扩展点
2011-01-12 15:31 1358工作台定义了一定数量的扩展点,帮助插件向已经存 ... -
插件开发—— 通过插件扩展工作台
2011-01-12 01:15 1504现在,你应该对工作台的操作和怎样使用视图和编辑 ... -
Eclipse 运行时概述 Part 3 —— 并行框架
2011-01-10 18:11 1391并行框架(Concurrency infras ... -
Eclipse 运行时概述 Part 2 —— 内容类型
2011-01-07 17:59 1471内容类型(Content Type) ... -
Eclipse 平台架构
2011-01-05 00:25 29191. Eclipse 平台架构 Eclips ... -
SWT Part 7 —— Graphics (绘图)
2010-12-29 17:04 2873Graphics SWT 提供了一个图形引擎 ... -
SWT Part 6 —— Error Handling (错误处理)
2010-12-29 13:52 1417Error handling SWT 可以抛 ... -
SWT Part 5 —— 多线程
2010-12-22 23:22 2095在使用SWT构建应用程序时,理解系统底层读取和 ... -
SWT part 3 —— Event(事件)
2010-12-22 16:47 3091创建了一个display对象和一些用户界面部件 ... -
SWT Part 2 —— Controls(控件)
2010-12-22 09:26 1970Control (控件)就是我们能够在用户界面上看到的 ... -
SWT —— Standard Widget Toolkit
2010-12-21 16:24 19381.1 SWT— Standard Widget Toolki ... -
Project Builders and Natures In Eclipse
2010-10-29 18:24 2421Project natures allow a plug-in ... -
Web Facet Installation Delegate in WTP
2010-08-25 16:00 1163plugin: org.eclipse.jst.j2ee.we ... -
SWT 日期时间选择控件
2008-12-26 16:18 8107Eclipse 3.3 及 更新的版本 // DateTi ... -
OSGI 资源
2008-03-03 11:25 1919OSGi Alliance | Main / OSGi All ... -
eRCP 嵌入式富客户端平台
2008-01-08 15:55 1834嵌入式富客户端平台,embedded Rich Client ... -
GEF (二) -- 创建模型的可视化视图(Graphical View)
2008-01-04 18:35 2917创建了模型和显示 ... -
GEF (一) -- GEF简介及控制器EditPart
2008-01-04 11:19 3692一 GEF简介 GEF ... -
GEF EMF GMF 资源
2007-12-14 11:16 3919alphaWorks Eclipse technology. ...
相关推荐
### Eclipse-RCP概述 #### 一、Eclipse-RCP简介 Eclipse Rich Client Platform (Eclipse RCP) 是一个开放源代码的框架和技术栈,它主要用于构建可扩展且功能丰富的桌面应用程序。Eclipse RCP 基于 Eclipse 平台...
接下来进行必要的运行配置,以便在Eclipse中正确运行带有参数传递功能的Applet: - **打开运行配置**:通过菜单栏的`Run` -> `Run Configurations...` 打开运行配置对话框。 - **选择Applet标签页**:在弹出的...
因此,在将Myeclipse中的Web项目迁移到Eclipse时,需要对项目的一些配置进行调整,以适应Eclipse的工作方式。 #### 二、具体步骤 1. **准备阶段**:确保Eclipse已安装并正确配置,包括必要的插件和JDK环境。 2. *...
### 绿色免安装Eclipse 4.5.0 (Windows) 开发运行环境配置说明文档 #### 一、概述 本文档旨在帮助用户在Windows操作系统下成功配置Eclipse 4.5.0绿色免安装版的开发环境,并解决安装过程中可能遇到的问题,如无法...
### Eclipse启动运行速度调优详解 #### 一、引言 Eclipse作为一款广泛使用的集成开发环境(IDE),尤其在Java开发领域占据了重要的地位。然而,随着项目规模的增长及复杂性的提升,Eclipse的启动速度及运行效率...
"Eclipse运行Java web项目详细指南" 一、Eclipse 运行 Java web 项目概述 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),支持多种编程语言,包括 Java、Python、C++ 等。在这里,我们将详细介绍如何...
Eclipse 平台概述 Eclipse 平台是一个开放源码社区,专注于开发框架和示范工具的通用平台,从而使得构建和部署软件更简单且成本有效。 Eclipse 平台为三类支持者提供价值:基于 Eclipse 的产品的用户、使用 Eclipse...
此错误表明Eclipse启动时检测到当前安装的JVM(Java虚拟机)版本过低,不满足Eclipse运行的要求。 #### 二、问题分析 1. **JVM版本不匹配**:Eclipse需要特定版本的JVM支持才能正常运行,通常情况下,Eclipse至少...
#### 三、Eclipse 8.6 版本概述 Eclipse 8.6(也称为 Photon)是 Eclipse IDE 的一个重要版本,发布于 2018 年 6 月 27 日。该版本带来了诸多新特性和改进,特别是在性能优化、界面调整以及对现代 Web 和 Java 开发...
通过调整这两个参数,可以有效管理Eclipse运行时的内存占用情况,避免因内存不足导致的应用崩溃或性能下降问题。 ##### 2.2 -XX:PermSize 和 -XX:MaxPermSize 参数 - **-XX:PermSize**:设置永久代(Permanent ...
1. **Eclipse IDE概述**: Eclipse是一个开放源码的软件开发平台,它包含了一个核心框架,允许开发者创建、集成和运行应用程序。Eclipse最初由IBM开发,后来成为了一个社区驱动的项目。该IDE支持多种编程语言,如...
Eclipse运行时需要占用一定的内存空间,如果分配给Eclipse的内存不足或设置不合理,可能会导致Eclipse因内存溢出而自动关闭。例如,在部分配置文件(如`eclipse.ini`)中设置了Eclipse启动时的内存参数,这些参数...
- **必要性**: Eclipse运行需要Java运行环境(JRE)的支持。 - **获取方式**: 如果系统未安装JRE,可从官方网站java.sun.com下载并安装。 - **多JRE环境下选择**: Eclipse会自动搜索系统注册表中的JRE,并优先使用...
- **运行时错误**:确保OpenMP运行时库已经正确安装,并且路径正确无误。 - **性能问题**:优化OpenMP代码,合理设置并行级别,避免不必要的同步操作。 ### 四、进一步学习资源 - **官方文档**:访问OpenMP官方网站...
- 启动Eclipse:介绍了如何初次运行Eclipse环境。 3. 窗口探索: - Eclipse窗口的各个部分:讲解了Eclipse界面的组成部分。 - 使用多个窗口:介绍了如何在Eclipse中使用多个窗口,以及如何管理窗口布局。 4. ...
一、概述 中标麒麟系统是国产操作系统,为了满足开发者的需求,需要安装Java开发环境和Eclipse集成开发环境。该指南提供了详细的安装步骤和配置过程,旨在帮助用户快速安装和配置Java和Eclipse环境。 二、卸载原...
安装完成后,用户需要配置 Rust 工具链路径,包括 Rustc 编译器、Cargo 包管理器以及 gdb 调试器,以确保插件能够正确运行。一旦配置完毕,就可以在 Eclipse 中创建或导入 Rust 项目,享受无缝的 Rust 开发体验。 *...
Hadoop Eclipse Plugin的出现解决了这个问题,它允许开发者在Eclipse的图形用户界面内完成Hadoop项目的构建和运行,提高了开发的直观性和便利性。 3. **安装与配置** 安装Hadoop Eclipse Plugin非常简单,只需要将...
这个实例是基于Drools的,提供了一个完整的、可运行的Eclipse工程,让你可以直接在开发环境中进行实践和学习。 **Drools 的核心概念** 1. **规则(Rules)**:规则是Drools的核心,它由条件(LHS,Left-Hand Side...