`
liugang594
  • 浏览: 985519 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse运行(launcher)框架三

阅读更多

ShortCuts的增加

我们要运行java的时候,我们在java文件上点右键,就有一个“run as”菜单,可以到里面选择java的运行方式;在“debug as”菜单里可以选择调试方式。所以我们也想有一个这个怎么办?

这里就要用到另一个扩展点:org.eclipse.debug.ui.launchShortcuts。这是和UI相关的,所以放到我们的UI插件里。我的实现如下:

 

     <extension point="org.eclipse.debug.ui.launchShortcuts">
      <shortcut
     class="com.tibco.cdc.liugang.launcher.ui.shortcut.LiugangLaunchShortcut"
            icon="icons/sample.gif"
            id="com.tibco.cdc.liugang.launcher.ui.shortcut"
            label="Liugang Application"
            modes="run,debug">
         <configurationType
               id="com.tibco.cdc.liugang.launcher.type">
         </configurationType>
           <perspective id="org.eclipse.jdt.ui.JavaPerspective"/>
            <perspective id="org.eclipse.jdt.ui.JavaHierarchyPerspective"/>
            <perspective id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
            <perspective id="org.eclipse.debug.ui.DebugPerspective"/>
                  <contextualLaunch>
            <enablement>
               <with variable="selection">
                  <count value="1"/>
                  <iterate>
                     <instanceof value="org.eclipse.core.resources.IFile"/>
                     <test
                           value="*.liugang"
                           property="org.eclipse.debug.ui.matchesPattern"/>
                  </iterate>
               </with>
            </enablement>
         </contextualLaunch>
      </shortcut>
   </extension>
 

 

这里有几个地方:首先当然是那个实现类是最重要的了。其次我加了一个出现在条件,如果选择的是一个后缀名为“liugang”的文件,则出现。所以现在运行如下:

 

tu6

图六

所以这个时候需要自己去生成对应的configuration去运行。通常要做的事如下:首先查找是否这个文件对应的launchConfiguration已经存在,如果存在,则直接用就可以;否则,新建一个configuration然后运行。

 

补充

我们再回过头去看一下LiugangLaunchConfigurationTypelaunch()方法里的launch参数。在开始之前,我们把运行产生的eclipse的透视图切换到调试视图,然后运行一个:

 

tu7

图七

我们看红色圈住的地方。每运行一次,会产生一个这样的configuration。不过我们再看看java

 

tu8

图八

我们看到它比我们生成的要多一次。如果是在调试情况下,那就更多了:

 

tu9

图九

这就是之前我们介绍参数:launch,时说到了,运行完以后可以把运行的结果加到这个launch里去。这里有两种加的方式:一个是加IProcess对象,直接运行的情况下一般是加这个;另一个是IDebugTarget对象,调试的情况下用这个,它有一个层次结构。现在我们先不讲调试。看看运行的情况下怎么加上吧。例如我们有一个取IP的操作,就可以如下完成:

public class LiugangLaunchConfigurationType implements
            ILaunchConfigurationDelegate {

      public void launch(ILaunchConfiguration configuration, String mode,
                  ILaunch launch, IProgressMonitor monitor) throws CoreException {
            System.out.println("You selected liugang launchconfiguration type to run");
            Process process;
            try {
                  process = Runtime.getRuntime().exec("ipconfig");
                  RuntimeProcess runtimeProcess = new RuntimeProcess(launch,process,"Liugang Process",null);
                  launch.addProcess(runtimeProcess);
            } catch (IOException e) {
                  e.printStackTrace();
            }
      }

}
 

 

我们再运行试试:

 

tu10

图十

好玩吧?好了,先讲这么多了。下次就要开讲调试器了。不过这个比较复杂,可能要长一些时间的准备。等着就行了!

 

[参考]

http://www.eclipse.org/articles/Article-Launch-Framework/launch.html

分享到:
评论
7 楼 imu2008 2014-05-08  
讲的不错。看完一遍就懂了~
6 楼 oliverswan 2009-02-17  
我遇到一个问题啊,要做一个远程调试的功能,这样运行环境不是起来本地,所以没有IProcess对象了,如果不调用launch.addProcess的话,就会导致我的socket通讯的异常,不知道是怎么回事啊,很急,请刘大侠能帮忙给点建议!!QQ:308637147
5 楼 aslk 2008-01-17  
不好意思,打错了一些字
断点的接口比如ILineBreakpoint等,当然也有IBreakpoint。不过其stack的接口中IStackFrame却又用了getLineNumber()等。换言之,需要利用行来定位。
如果不用原来的定位机制,那么只能自己重写那些接口呢,如何sourcelocator和path来确定呢?如何在process定义IRegion的实现类呢?
谢谢
4 楼 liugang594 2008-01-17  
没看懂你写的。好像很多别字吧?
3 楼 aslk 2008-01-16  
它又接口比如ILineBreakpoint等,当然也有IBreakpoint。不过其对战接口中IStackFrame却又getLineNumber()等。
如何用sourcelocator和path来确定呢?如何在process定义IRegion的实现类呢?
2 楼 liugang594 2008-01-15  
不是,你这个理解有点不对。没有说接口或扩展点是针对行的,具体怎么针对是由你自己决定的。比如说一个XPDL编辑器里,可以对一个个Process的Activity来进行。这都是行的。

这个具体当前调试到哪个位置是由你的sourceLocator和Path来决定的。
1 楼 aslk 2008-01-14  
下次开始讲调试器,先问一个问题哦。在eclipse的调试框架中,很多接口和扩展点都是针对行来进行调试的。如果不是针对行来进行调试,例如在工作流里面,是针对活动节点来进行调试,可以直接使用eclipse的框架吗?

相关推荐

    可以直接在eclipse上运行Launcher4.4源码

    【标题】"直接在Eclipse上运行Launcher4.4源码"涉及的IT知识点主要集中在Android开发、Eclipse IDE的使用以及源码分析上。Android的Launcher是系统启动器,负责展示桌面图标和启动应用程序,它是Android操作系统的...

    能在eclipse上直接编译的Launcher3

    此外,通过在Eclipse上编译Launcher3,开发者可以深入理解Android系统的运行机制,增强对Android应用架构和性能优化的理解。 总的来说,“能在eclipse上直接编译的Launcher3”提供了一个学习和定制Android启动器的...

    launcher2导入eclipse不报错

    3. 接下来,你需要把这些包文件添加到`launcher2`工程的构建路径中。具体步骤如下: - 右键点击工程名,选择“Build Path” -&gt; “Configure Build Path...”。 - 在弹出的对话框中,选择“Libraries”标签页,然后...

    eclipse指定启动的虚拟机配置说明

    - `-framework`: 指定 Eclipse 使用的框架路径。例如: ``` -framework plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar ``` - `-vmargs`: 此行之后的所有参数将传递给 JVM。常见的参数包括: - `-...

    安卓Launcher桌面相关-使用eclipse开发工具自己写的一个桌面小控件.rar

    这个项目虽然可能无法保证每个组件都能正常运行,但它提供了一个基础框架,可以帮助初学者了解 Android Launcher 的开发流程。通过参考学习和实践,你可以逐步完善自己的 Launcher 功能,打造个性化的桌面体验。

    Launcher依赖的jar包

    为了在Eclipse环境中编译和运行`Launcher2`源码,开发者需要确保引入了正确的依赖库。这些依赖库通常包含在`.jar`文件中,它们提供了必要的API和实现,使得`Launcher2`能够正常运行。描述中的"Launcher2 Android4.4...

    精通eclipse开发jsp

    5. **Sysdeo Eclipse Tomcat Launcher plugin**:这是一个Eclipse插件,允许用户直接在Eclipse内启动和管理Tomcat服务器,简化了开发过程中的部署步骤。 6. **Eclipse版本与JDT**:Eclipse 3.1版本是针对该教程的...

    eclipse开发

    3. **Sysdeo Eclipse Tomcat Launcher 3.1beta** - 这是一个Eclipse插件,允许用户直接在Eclipse内管理和运行Tomcat服务器。下载并解压tomcatPluginV31beta.zip,然后将其内容复制到Eclipse的安装目录下。 4. **...

    Spark源代码在Eclipse中的部署、编译、运行.doc

    在本文中,我们将详细探讨如何在Eclipse环境中部署、编译和运行Apache Spark的源代码。Apache Spark是一个流行的开源大数据处理框架,它提供了快速、通用和可扩展的数据处理能力。而Eclipse是一款广泛使用的Java集成...

    Android 调试运行launcher源码(四)——修改所有类中的错.doc

    在Android开发过程中,调试和运行第三方源码,如Launcher,是一项挑战性的工作。这篇文档主要讲述了如何在Windows下的Eclipse环境中修正Android Launcher源码中的错误。以下是对文档中提到的知识点的详细说明: 1. ...

    Eclipse 安装配置总结.doc

    - 运行`F:\eclipse\eclipse.exe`启动Eclipse。 #### 二、非侵入式插件安装方法(Links安装法) - **侵入式安装**: - 将插件中的`features`和`plugins`目录直接复制到Eclipse安装目录下的同名目录中。 - 缺点:...

    Eclipse开发struts完全指南

    【Eclipse开发Struts完全指南】是一份详细的文档,旨在帮助开发者使用Eclipse IDE进行Struts框架的应用开发。以下是对该指南中涉及的关键知识点的详细解释: ### 1. 安装程序准备 #### JDK 5.0 JDK (Java ...

    Eclipse使用入门教程

    - Sysdeo Tomcat Launcher Plugin是一个用于在Eclipse中启动Tomcat的插件。 - 下载地址:[http://www.eclipsetotale.com/tomcatPlugin/tomcatPluginV33.zip]...

    eclipse

    3. **Java 应用程序启动器(Java Application Launcher)**: Eclipse 可以帮助开发者配置和启动Java应用程序,包括控制台应用程序和Swing GUI应用程序。 4. **JUnit 支持**: Eclipse 集成了JUnit测试框架,使单元...

    eclipse资源包

    4. `launcher`:这可能指的是Eclipse的启动器模块,负责初始化Eclipse环境,加载工作台(Workbench)和运行时环境。这个部分的源码对于理解Eclipse如何启动和管理进程非常重要。 5. `java`:这个目录可能包含了Java...

    android 4.4 源码 eclipse 浏览

    3. **系统UI(System UI)**:`packages/apps`目录下包含各种系统应用,如Launcher、Settings等。深入研究这些应用的源码,能学习到Android界面设计和交互实现。 4. **硬件抽象层(Hardware Abstraction Layer, HAL...

    Eclipse 插件下载专区lousingvu专用通道

    9. `org.junit_3.8.2.v20090203-1005`:JUnit是Java语言的单元测试框架,此插件使Eclipse支持JUnit测试编写和运行,对代码质量的保证至关重要。 10. `org.eclipse.core.runtime.compatibility.registry_3.2.200.v...

Global site tag (gtag.js) - Google Analytics