在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 /
- 您需要在Preference – > Java – > Classpath变量中设置ECLIPSE_HOME类路径变量
- .classpath已经有了这些类路径变量,你可以参考这个post – 在eclipse中更新.classpath内容 。 正如你所看到的,它引用了eclipse / jdt(art)jar文件。 我很确定可以在不下载3.0.2版本的情况下更改对最新版本的jdt / ast的引用。
- 当我使用Mac时,我需要使用swt for Mac替换用于PC的swt。 我可以在BuildPath / Configure Build路径中执行此操作
- 首先删除PC swt参考。
- 然后添加正确的Mac swt参考。
使用eclipse indigo / on mac编译示例
当设置正确时,eclipse开始构建项目。 您可以使用Project – > Build Project菜单。 然后,您可以检查应用程序在eclipse中正常工作。
生成可执行jar
- 导出到可执行jar文件。
- 你会得到一些警告,但你会有一个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的任何内容。 您可以使用命令行选项来计算消息,或者使用共享文件等。
- 找到所需类javax.faces.FactoryFinder的多个版本
- Java Eclipse Android初学者问题 – 如何添加库或链接文件夹。 初学者参考
- 在eclipse中使用额外的本机代码库导出到Runnable jar
- 如何自定义Eclipse的getter和setter生成?
- 是否可以在使用Java 9的Eclipse IDE中使用没有class和main方法的sysout?
- 如何使用Ant?
- java.lang.NoSuchMethodError:javax.persistence.Table.indexes()[Ljavax / persistence / Index;
- 如何在SWT表的列中添加超链接?
- 在eclipse中调试Jar文件