是否有可能创建一个命令行应用JDT?(Is it possible to create a comm

2019-09-29 06:19发布

我想创建一个命令行应用程序,它做的Java代码分析。 在Eclipse JDT似乎是这个职位的最佳工具,但每个教程中,我可以找到JDT启动的JDT作为Eclipse插件。

我希望是这样的:

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

开始。 然而getWorkspace()抛出该服务未启动异常。

Answer 1:

如果你想利用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”一类,并在您的扩展引用它。

我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
    }

}

输出是:

你好在d日食:/Arne/workspaces/runtime-TestApplication.id2



Answer 2:

你要确保你第一次启动Eclipse的。 使用EclipseStarter类得到的东西运行,那么你可以使用ResourcesPlugin方法。



文章来源: Is it possible to create a command line JDT application?