3

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

那可能吗?如果是这样,怎么能做到这一点?

4

2 回答 2

3

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

例子

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

该程序针对的是相当旧的 Eclipse(3.0.2),我在这个站点下载了 Mac OS X的3.0.2 - http://archive.eclipse.org/eclipse/downloads/drops/R-3.0.2-200503110845 /

  1. 您需要在 Preference -> Java -> Classpath variables 中设置 ECLIPSE_HOME 类路径变量在此处输入图像描述
  2. .classpath 已经有这些类路径变量,你可以参考这篇文章 - eclipse 中的 .classpath 内容更新。如您所见,它指的是 eclipse/jdt(art) jar 文件。我很确定可以在不下载 3.0.2 版本的情况下更改对 jdt/ast 最新版本的引用。
  3. 当我使用 Mac 时,我需要将 swt for PC 替换为 swt for Mac。我可以在 BuildPath/Configure Build path 中做到这一点在此处输入图像描述 在此处输入图像描述
    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

于 2012-09-24T21:02:06.363 回答
1

必须是 Eclipses 的 AST 吗?或者任何 AST 代都可以吗?如果它不必是 eclipse,我建议 Habelitz 开源 Java AST Compiler。 http://www.habelitz.com/ 我自己在一些项目中使用它......

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

然后问题变成了将信息传递回原始过程,这变得有点混乱。在这种情况下,我建议的方法可能是在 eclipse 中创建一个插件,并让该插件执行您认为需要 AST 的任何操作。您可以使用 eclipse 的命令行选项或共享文件或其他东西来处理消息。

于 2012-09-22T05:06:27.803 回答