是否可以创建命令行JDT应用程序?

时间:2009-12-13 22:49:49

标签: eclipse command-line eclipse-pdt

我想创建一个命令行应用程序来分析Java代码。 Eclipse JDT似乎是适合这项工作的工具,但是我可以在JDT上找到的每个教程都将JDT作为Eclipse插件启动。

我希望这样的事情:

public static void main(String[] args) throws Exception {
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    ...
}

开始使用。但是,getWorkspace()会抛出服务未启动的异常。

2 个答案:

答案 0 :(得分:2)

如果你想利用JDT,你必须开始eclipse。您可以使用扩展点“org.eclipse.core.runtime.applications”来创建从命令行开始的最小应用程序。

  1. 创建一个新的插件项目。
  2. 将“org.eclipse.core.runtime”和“org.eclipse.core.resources”添加到依赖项中。
  3. 为“org.eclipse.core.runtime.applications”创建扩展名。
  4. 创建一个实现“org.eclipse.equinox.app.IApplication”的类,并在您的扩展中引用它。
  5. 我的plugin.xml如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.4"?>
    <plugin>
       <extension
             id="id2"
             point="org.eclipse.core.runtime.applications">
          <application
                cardinality="singleton-global"
                thread="main"
                visible="true">
             <run class="testapplication.Application1">
             </run>
          </application>
       </extension>
    </plugin>
    

    MANIFEST.MF:

    Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    Bundle-Name: TestApplication
    Bundle-SymbolicName: TestApplication;singleton:=true
    Bundle-Version: 1.0.0.qualifier
    Bundle-Activator: testapplication.Activator
    Require-Bundle: org.eclipse.core.runtime,
     org.eclipse.core.resources
    Bundle-ActivationPolicy: lazy
    Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    

    Application1.java:

    package testapplication;
    
    import org.eclipse.core.resources.ResourcesPlugin;
    import org.eclipse.equinox.app.IApplication;
    import org.eclipse.equinox.app.IApplicationContext;
    
    public class Application1 implements IApplication {
    
        @Override
        public Object start(IApplicationContext context) throws Exception {
            System.out.println("Hello eclipse at "
                    + ResourcesPlugin.getWorkspace().getRoot().getRawLocation());
            return IApplication.EXIT_OK;
        }
    
        @Override
        public void stop() {
            // nothing to do at the moment
        }
    
    }
    

    输出是:

      

    你好eclipse在D:/Arne/workspaces/runtime-TestApplication.id2

答案 1 :(得分:0)

您希望确保首先启动Eclipse。使用EclipseStarter类来运行,然后可以使用ResourcesPlugin上的方法。