我是编译器的新手。我已经读过,我可以通过以下代码在cmd中生成xxx.flex文件:
java JFlex.Main xxx.flex
但我收到了这个错误:
错误:无法找到或加载主类JFlex.Main
并且为了生成yyy.cup,我输入了:
java java_cup.Main yyy.cup
但我也遇到了这个错误:
我很困惑......我该怎么办?错误:无法找到或加载主类java_cup.Main
答案 0 :(得分:0)
当您调用
时java JFlex.Main xxx.flex
您要求java加载JFlex.Main
类并将xxx.flex
作为参数传递。由于你没有告诉java哪个是JFlex.Main
类,java是在它的类路径中搜索它,如果你没有将JFlex jar文件添加到类路径,它会导致错误消息
Error: Could not find or load main class JFlex.Main
BTW,类名和命名空间区分大小写:在JFlex jar文件中,Main
类位于jflex
目录中,而不是JFlex
,因此您需要调用{ {1}}类...除非您使用1.5之前的JFlex版本jflex.Main
是合法的。
让java找到类:
JFlex
- 或Windows中的$CLASSPATH
)%CLASSPATH%
参数提供java
命令的jar文件的位置例如:
-cp
如果jar在当前目录中,您可以使用
java -cp path/to/jflex-1.6.0.jar jflex.Main xxx.jflex
或者更简单地说,因为它是一个可执行jar,你可以省略主类
java -cp jflex-1.6.0.jar jflex.Main xxx.jflex
同样地,似乎java在处理java -jar jflex-1.6.0.jar xxx.jflex
文件时缺少CUP jar文件,你可以像JFlex一样修复它
yyy.cup
或
java -cp java-cup-11a.jar java_cup.Main yyy.cup