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

时间:2012-09-21 15:58:02

标签: java eclipse eclipse-jdt

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

这可能吗?如果是这样,人们怎么能这样做?

2 个答案:

答案 0 :(得分:3)

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

实施例

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

该程序针对相当老的日食(3.0.2),我为Mac OS X本网站下载了3.0.2 - http://archive.eclipse.org/eclipse/downloads/drops/R-3.0.2-200503110845/

  1. 您需要在Preference中设置ECLIPSE_HOME类路径变量 - > Java - >类路径变量enter image description here
  2. .classpath已经有了这些类路径变量,你可以参考这篇文章 - .classpath contents update in eclipse。正如你所看到的,它引用了eclipse / jdt(art)jar文件。我很确定可以在不下载3.0.2版本的情况下更改对最新版jdt / ast的引用。
  3. 当我使用Mac时,我需要使用swt for Mac替换用于PC的swt。我可以在BuildPath / Configure Build路径enter image description here中执行此操作 enter image description here
    1. 首先删除PC swt参考。
    2. 然后添加正确的Mac swt参考。
  4. 使用eclipse indigo / on mac

    编译示例

    当设置正确时,eclipse开始构建项目。您可以使用Project - >构建项目菜单。然后,您可以检查应用程序在eclipse中正常工作。 enter image description here

    生成可执行jar

    1. 导出到可执行jar文件。 enter image description here enter image description here enter image description here
    2. 你会得到一些警告,但你会有一个jar文件。
    3. 执行生成的jar

      只是执行java -jar ast.jar在Mac上不起作用,我从这篇文章中得到了一个提示。 Running SWT based, cross-platform jar properly on a Mac

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

答案 1 :(得分:1)

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

嗯,当然你可以像任何其他进程一样启动eclipse:How to create a process in Java

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