在eclipse IDE环境之外执行Eclipse插件(jdt / ast)

我可以将Eclipse Java开发工具作为独立进程执行吗? 我需要从另一个程序使用Eclipse JDT获取Java程序的AST结构,为此,我需要执行eclipse插件作为场景后面的独立进程。

那可能吗? 如果是这样,那怎么可以呢?

Eclipse / jdt和eclipse / ast只不过是一个jar文件,因此可以使用它们来构建独立的java应用程序。

我用google搜索ASTExplorer作为一个例子,将eclipse / ast插件作为一个独立的java项目。

该程序的目标是相当老的日食(3.0.2),我下载了3.0.2 for Mac OS X这个网站 – http://archive.eclipse.org/eclipse/downloads/drops/R-3.0.2-200503110845 /

  1. 您需要在Preference – > Java – > Classpath变量中设置ECLIPSE_HOME类路径变量 在此处输入图像描述
  2. .classpath已经有了这些类路径变量,你可以参考这个post – 在eclipse中更新.classpath内容 。 正如你所看到的,它引用了eclipse / jdt(art)jar文件。 我很确定可以在不下载3.0.2版本的情况下更改对最新版本的jdt / ast的引用。
  3. 当我使用Mac时,我需要使用swt for Mac替换用于PC的swt。 我可以在BuildPath / Configure Build路径中执行此操作 在此处输入图像描述在此处输入图像描述
    1. 首先删除PC swt参考。
    2. 然后添加正确的Mac swt参考。

使用eclipse indigo / on mac编译示例

当设置正确时,eclipse开始构建项目。 您可以使用Project – > Build Project菜单。 然后,您可以检查应用程序在eclipse中正常工作。 在此处输入图像描述

生成可执行jar

  1. 导出到可执行jar文件。 在此处输入图像描述在此处输入图像描述在此处输入图像描述
  2. 你会得到一些警告,但你会有一个jar文件。

执行生成的jar

只是执行java -jar ast.jar在Mac上不起作用,我从这篇文章中得到了一个提示。 在Mac上正确运行基于SWT的跨平台jar

简而言之,您需要运行java -XstartOnFirstThread -jar ast.jar

必须是日食的AST吗? 或者任何AST代都可以吗? 如果它不必是eclipse,我建议使用Habelitz开源Java AST编译器。 http://www.habelitz.com/我自己用它来做一些项目……

好吧,当然你可以像任何其他进程一样启动eclipse: 如何用Java创建进程

然后问题就变成了将信息传回原来的过程,这个过程变得有点混乱。 在这种情况下我建议的方法可能是在eclipse中创建一个插件,并让该插件执行你认为需要AST的任何内容。 您可以使用命令行选项来计算消息,或者使用共享文件等。