私は現在 ANTLR を独学していますが、「The Definitive ANTLR Reference」の本を読んでいるときに問題が発生しました。私は最初の例を実行しており、文法ファイルを作成し、レクサーとパーサーの Java ファイルを取得し、すべてをテストするために次の Java プログラムを作成しました。
import org.antlr.runtime.*;
public class Test
{
public static void main(String[] args) throws Exception
{
ANTLRInputStream input = new ANTLRInputStream(System.in);
TLexer lexer = new TLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
TParser parser = new TParser(tokens);
parser.r();
}
}
次に、コマンドラインを使用してコンパイルしましたが、これは正常に動作し、Java クラスを実行しようとすると失敗します。コマンドライン全体を以下に示します。
C:\Users\Dan\workspace\Test\src>dir
Volume in drive C is Acer
Volume Serial Number is ECB2-5E39
Directory of C:\Users\Dan\workspace\Test\src
17/09/2012 18:15 <DIR> .
17/09/2012 18:15 <DIR> ..
17/09/2012 18:32 723 Test.class
16/09/2012 20:51 353 Test.java
17/09/2012 18:32 3,641 TLexer.class
15/09/2012 21:35 7,625 TLexer.java
17/09/2012 18:32 2,425 TParser.class
15/09/2012 21:35 2,115 TParser.java
6 File(s) 16,882 bytes
2 Dir(s) 235,276,161,024 bytes free
C:\Users\Dan\workspace\Test\src>javac -cp C:\antlr-3.4.jar TLexer.java TParser.j
ava Test.java
C:\Users\Dan\workspace\Test\src>java -cp C:\antlr-3.4.jar Test
Error: Could not find or load main class Test
C:\Users\Dan\workspace\Test\src>
私は多くの解決策を見てきましたが、どれもうまくいかないようです。以下は問題ありません。
- JDK および JRE は完全に最新
- PATHが設定されました