java.lang.NoSuchMethodError: java_cup.runtime.lr_parser.getSymbolFactory()Ljava_cup/runtime/SymbolFactory
java.lang.NoSuchMethodError: java_cup.runtime.lr_parser.getSymbolFactory()Ljava_cup/runtime/SymbolFactory
我刚开始使用 JFlex 的一个项目,当我尝试使用 ant
编译该项目时,出现以下错误:
java.lang.NoSuchMethodError: java_cup.runtime.lr_parser.getSymbolFactory()Ljava_cup/runtime/SymbolFactory
这是什么原因造成的?我下载了 JFlex jar,并在我的项目中使用它。
原来要用jflex
蚂蚁任务,你需要download JFlex from here,解压到某个地方,然后将jflex-1.6.1/lib/*
文件复制到你的ant/lib/
文件夹,然后再试一次。
我在 IntelliJ 的同一个项目中同时使用 JFlex.jar
和 cup_v10k.jar
时遇到了同样的问题。
问题出在cup_v10k.jar
,其中java_cup.runtime.lr_parser
class也存在,getSymbolFactory()
的方法不存在class。
IntelliJ 在搜索 lr_parser
class 时不知道要信任哪个 jar,并选择了字典顺序第一个 jar - cup_v10k.jar
。
我的 solution/hack 是将 cup_v10k.jar
重命名为 JFlex.jar
之后的字典顺序,例如 zcup_v10k.jar
。然后 IntelliJ 能够找到正确的 lr_parser
class.
我刚开始使用 JFlex 的一个项目,当我尝试使用 ant
编译该项目时,出现以下错误:
java.lang.NoSuchMethodError: java_cup.runtime.lr_parser.getSymbolFactory()Ljava_cup/runtime/SymbolFactory
这是什么原因造成的?我下载了 JFlex jar,并在我的项目中使用它。
原来要用jflex
蚂蚁任务,你需要download JFlex from here,解压到某个地方,然后将jflex-1.6.1/lib/*
文件复制到你的ant/lib/
文件夹,然后再试一次。
我在 IntelliJ 的同一个项目中同时使用 JFlex.jar
和 cup_v10k.jar
时遇到了同样的问题。
问题出在cup_v10k.jar
,其中java_cup.runtime.lr_parser
class也存在,getSymbolFactory()
的方法不存在class。
IntelliJ 在搜索 lr_parser
class 时不知道要信任哪个 jar,并选择了字典顺序第一个 jar - cup_v10k.jar
。
我的 solution/hack 是将 cup_v10k.jar
重命名为 JFlex.jar
之后的字典顺序,例如 zcup_v10k.jar
。然后 IntelliJ 能够找到正确的 lr_parser
class.