3

私は現在 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が設定されました
4

1 に答える 1

12

現在の場所をクラスパスに追加します。

java -cp C:\antlr-3.4.jar;. Test
于 2012-09-17T18:08:01.853 に答える