Eclipse JDT Debug

JDT Debug 由几个支持运行和单步调试Java核心的插件组成

    org.eclipse.jdt.launching是一个定义Java启动和运行时支持的插件。当你需要启动JVM程序时,你可以使用这个插件。JDT启动与一种叫做启动程序的平台启动设备紧密相关。 org.eclipse.jdt.launching包提供Java平台运行时类。JavaRuntime有一些静态方法的实现,去访问已经被注册的VM,计算运行时类路径和源查找路径。一类虚拟机(比如JDK虚拟机)是被 IVMInstallType类描述的。在这类虚拟机里面IVMInstall描述特有的设备(installations )。 IVMRunner用来启动特有的Java虚拟机和注册他的流程到Debug插件中。 org.eclipse.jdt.launching.sourcelookup.containers包定义了相关的类,用于操作文件系统中的本地源代码。
    org.eclipse.jdt.debug是一个定义了Java debug模型的插件。当你在程序中要使用Debug调试时,你将使用到这个插件。JDT Debug模型与平台Debug模型紧密联系。org.eclipse.jdt.debug.core包支持基于JDI/JDWP的Java Debug模型,这可以用来在Debug模式下控制Java程序。 org.eclipse.jdt.debug.eval 包是评估Java表达式和报告结果的基础。
    org.eclipse.jdt.debug.ui是一个定义Java debug UI扩展的插件。大部分的Debugger API是由平台基本Debugger提供的,平台基础Debugger也被叫做Debug model presentation和Debug UI utility classes。Java debug UI API重点放在访问启动中的源定位器和Java启动结构标签。 org.eclipse.jdt.debug.ui.launchConfigurations包定义了配置标签,这些配置标签用于本地和远程的Java应用

运行一个Java程序

     JDT Debug组件包含了一些工具,这些工具用来启动一个使用了虚拟机的Java程序,这是用户为对应的Java project配置的。

     启动一个编译好的Java程序

     被编译好的Java project可以使用适当的IVMRunner运行,也能通过类名运行类。下面的代码片段展示了在myJavaProject中的MyClass是怎么被启动的。

 IVMInstall vmInstall = JavaRuntime.getVMInstall(myJavaProject);
   if (vmInstall == null)
      vmInstall = JavaRuntime.getDefaultVMInstall();
   if (vmInstall != null) {
      IVMRunner vmRunner = vmInstall.getVMRunner(ILaunchManager.RUN_MODE);
      if (vmRunner != null) {
         String[] classPath = null;
         try {
            classPath = JavaRuntime.computeDefaultRuntimeClassPath(myJavaProject);
         } catch (CoreException e) { }
         if (classPath != null) {
            VMRunnerConfiguration vmConfig =
               new VMRunnerConfiguration("MyClass", classPath);
            ILaunch launch = new Launch(null, ILaunchManager.RUN_MODE, null);
            vmRunner.run(vmConfig, launch, null);
         }
      }
   }


    另外一个启动Java程序的方法是创建一个 Java application的启动配置,跟着启动它。下面的代码片段展示了myJavaProject中的MyClass是怎么通过使用一个简单的启动配置被启动的。使用一个默认的方式:最终的运行应用使用关联在myJavaProject中的JRE和classpath

 ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
   ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
   ILaunchConfigurationWorkingCopy wc = type.newInstance(null, "SampleConfig");
   wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, "myJavaProject");
   wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "myClass");
   ILaunchConfiguration config = wc.doSave();
   config.launch(ILaunchManager.RUN_MODE, null);


如想自己扩展Eclipse Debuger,可以参考如下文章
How to write an Eclipse debugger
http://www.eclipse.org/articles/Article-Debugger/how-to.html

你可能感兴趣的:(java,eclipse,jvm,UI,虚拟机)