Java 创建编译器时找不到或加载主类扫描程序

Java 创建编译器时找不到或加载主类扫描程序,java,compiler-errors,lexical-analysis,Java,Compiler Errors,Lexical Analysis,我正在测试编译器的词法分析。 我在jflex中有minijava.jflex文件。我在minijava.jflex中有以下代码: import java_cup.runtime.*; %% %公开的 %类扫描器 %实现sym %统一码 %线 %纵队 %杯 %调试 %{ StringBuffer字符串=新的StringBuffer(); 专用符号(整型){ 返回新符号(类型、yyline、yycolumn); } 专用符号(整型,对象值){ 返回新符号(类型、yyline、yycolumn、值);

我正在测试编译器的词法分析。 我在jflex中有minijava.jflex文件。我在minijava.jflex中有以下代码:

import java_cup.runtime.*;
%%
%公开的
%类扫描器
%实现sym
%统一码
%线
%纵队
%杯
%调试
%{
StringBuffer字符串=新的StringBuffer();
专用符号(整型){
返回新符号(类型、yyline、yycolumn);
}
专用符号(整型,对象值){
返回新符号(类型、yyline、yycolumn、值);
}
%}
/*主要人物类别*/
LineTerminator=\r |\n |\r\n
InputCharacter=[^\r\n]
空白={LineTerminator}|[\t\f]
/*评论*/
评论={TraditionalComment}{EndOfLineComment}}
{DocumentationComment}
传统建议=“/*”[^*]~“*/”|“/*”*“+”/”
EndOfLineComment=“/”{InputCharacter}*{LineTerminator}?
DocumentationComment=“/*”“*”+[^/*]~“*/”
/*标识符*/
标识符=[:jletter:[:jletterGit:]*
/*整数字面值*/
DecIntegerLiteral=0 |[1-9][0-9]*
/*浮点文字*/
FloatLiteral=({FLit1}{FLit2}{FLit3}){Exponent}?
FLit1=[0-9]+\。[0-9]* 
FLit2=\。[0-9]+ 
FLit3=[0-9]+
指数=[eE][+-]?[0-9]+
/*字符串和字符文本*/
StringCharacter=[^\r\n\“\\]
SingleCharacter=[^\r\n\'\]
%状态字符串,CHARLITERAL
%%
{
/*关键词*/
“布尔”{返回符号(布尔);}
“char”{返回符号(char);}
“类”{返回符号(类);}
“else”{返回符号(else);}
“扩展”{返回符号(扩展);}
“float”{返回符号(float);}
“int”{返回符号(int);}
“新”{返回符号(新);}
“if”{返回符号(if);}
“public”{返回符号(public);}
“super”{返回符号(super);}
“return”{返回符号(return);}
“void”{返回符号(void);}
“while”{返回符号(while);}
“this”{返回符号(this);}
/*布尔文字*/
“true”{return symbol(BOOLEAN_LITERAL,new BOOLEAN(true));}
“false”{return symbol(BOOLEAN_LITERAL,new BOOLEAN(false));}
/*空文本*/
“null”{返回符号(null_LITERAL);}
/*分离器*/
“({返回符号(LPAREN);}
“{返回符号(RPAREN);}”
{{返回符号(LBRACE);}
“}”{返回符号(RBRACE);}
“[”{返回符号(LBRACK);}
“]”{返回符号(RBRACK);}
“;”{返回符号(分号);}
“,”{返回符号(逗号);}
“{返回符号(点);}
/*操作员*/
“=”{返回符号(EQ);}
“>”{返回符号(GT);}

“基本上,该文件将被转换为名为
Scanner
的类中的解析器代码。但是生成的代码不会包含“main”方法。但是您正在尝试运行代码,就像它在
Scanner
代码中有一个main方法一样

您需要编写一些将要使用
Scanner
类的代码,并且该代码需要一个
main
方法,以便启动它

回到你的课堂讲稿、Java教科书、Java教程,阅读Java程序运行的基础知识,主要方法是什么,它的意义是什么

或者,阅读以下问答:


基本上,该文件将被转换为名为
Scanner
的类中的解析器代码。但生成的代码不包含“main”方法。然而,您正在尝试运行代码,就好像它在
Scanner
代码中有一个main方法一样

您需要编写一些将要使用
Scanner
类的代码,并且该代码需要一个
main
方法,以便启动它

回到你的课堂讲稿、Java教科书、Java教程,阅读Java程序运行的基础知识,主要方法是什么,它的意义是什么

或者,阅读以下问答:

javac Scanner.java
              javac sym.java
              java Scanner example.java
Could not find or load main class Scanner