2010-01-21 47 views
10

前段时间我写了一个Eclipse插件,它利用JDT来做一些解析。现在我正在考虑制作此应用的命令行版本。自然,我希望重用解析代码,所以我需要让JDT在Eclipse之外工作。有什么办法可以做到这一点(也许建立一些包装等)? JDT库中是否有任何端口提供相同的API /功能,但独立于Eclipse工作?没有Eclipse的JDT?

任何帮助将不胜感激。谢谢。

+0

我解析源代码以获取其结构(抽象语法树)。这个链接显示了我正在谈论的内容(http://www.vogella.de/articles/EclipseJDT/article.html)。像Antlr等,除了我已经用JDT编写代码之外,我想重复使用它,而不是用Antlr重写。 对不起,我想我没有说清楚 – alexloh 2010-01-22 04:09:26

回答

4

JDT分为两个不同的部分。解析部分应该都在插件中,根本没有UI依赖关系。我认为他们确实依赖于Eclipse运行时,这意味着您或多或少需要创建一个“无头RCP应用程序”。

+0

嗯,我不能给“接受答案”以无论是:(这篇文章和下面的一个是有用的,并寻找“无头RCP应用程序”让我看起来是正确的轨道。谢谢! – alexloh 2010-01-24 19:00:18

5

您可以在命令行中使用JDT Core。解析,AST,重写所有内容都可以在没有UI的情况下完成。

+0

如何在命令行上使用jdt核心? – necromancer 2014-02-10 10:11:10

+0

您需要深入了解文档和类以找出正确的调用。例如:http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-230.htm – 2014-02-10 18:05:31

2

为了能够使用AST类在独立的应用程序,你必须使用这些库(其中xx代表版本):

org.eclipse.core.contenttype_xx.jar 
org.eclipse.core.jobs_xx.jar 
org.eclipse.core.resources_xx.jar 
org.eclipse.core.runtime_xx.jar 
org.eclipse.equinox.common_xx.jar 
org.eclipse.equinox.preferences_xx.jar 
org.eclipse.jdt.core_xx.jar 
org.eclipse.osgi_xx.jar 

如果用JDT安装了Eclipse所有这些罐子都在日食的插件文件夹,例如在Windows中它可能在C:\Program Files\eclipse\plugins\