java.lang.NoSuchMethodError: java_cup.runtime.lr_parser.getS



我刚开始处理的一个项目使用 JFlex,当我尝试使用 ant 编译项目时,出现以下错误:

java.lang.NoSuchMethodError: java_cup.runtime.lr_parser.getSymbolFactory()Ljava_cup/runtime/SymbolFactory

这是什么原因造成的?我已经下载了 JFlex jar,并且正在我的项目中使用它。

原来要使用 jflex ant 任务,您需要从这里下载 JFlex,将其解压缩到某个地方,然后将jflex-1.6.1/lib/*文件复制到您的 ant/lib/ 文件夹中,然后重试。

IntelliJ 的同一项目中同时使用 JFlex.jarcup_v10k.jar 时,我遇到了同样的问题。

问题出在cup_v10k.jar,其中java_cup.runtime.lr_parser类也存在,而方法getSymbolFactory()在该类中不存在。

IntelliJ 在搜索 lr_parser 类时不知道该信任哪个 jar,并选择了按字典顺序排列的第一个 jar - cup_v10k.jar

我的解决方案/技巧是在 JFlex.jar 之后将cup_v10k.jar重命名为按字典顺序命名的内容,例如 zcup_v10k.jar 。然后,IntelliJ能够找到合适的lr_parser类。

相关内容

  • 没有找到相关文章

最新更新