我知道这是可能产生使用ANTLR的TestRig“GRUN”通过终端解析树的图形表示:从Java应用程序中运行ANTRL TestRig GUI
$ alias grun='java org.antlr.v4.runtime.misc.TestRig'
$ grun Example test -gui
hello world
EOF
但有可能调用TestRig从一个Java应用程序?我想利用TestRig功能来创建一个Java应用程序,它接受用户输入并显示生成的分析树图形表示。
我已经试过如下:
import org.antlr.v4.runtime.misc.TestRig;
...
TestRig test = new TestRig(args);
test.process();
但我得到这个消息:
无法加载实例为词法分析器或
它看起来它应该工作,因为它正确地标识了我在Eclipse上设置的参数Example test -gui
,但TestRig似乎无法找到语法。
如何正确设置参数?如果这是不可能的,在Java应用程序中是否有其他方式运行ANTLR的TestRig?
你有没有尝试设置CLASSPATH出口后,从命令行运行Java代码= “:在/ usr/local/lib目录/ ANTLR-4.2.2-complete.jar:$ CLASSPATH”?请根据需要更改antlr-4.2.2-complete.jar的位置。如果它从命令行运行,那么可能是它在你的eclipse设置中的唯一问题 – Saurabh 2015-03-30 18:24:08
是的,我已经设置了类路径,但是从命令行运行应用程序得到了相同的结果。我确实把所有的java类都放在同一个包里,但是没有帮助。 – 2015-03-31 00:26:13
如果你看看TestRig的源代码,那么它看起来很像类加载问题。我可以在这里建议的是继续挖掘这些线。 – Saurabh 2015-03-31 19:08:44