2017-11-05 6 views
1

私はANTLR 4を学習しようとしていますが、で与えられた例に従っています。ANTLR 4リファレンス。悲しいことに、私は最初の例で立ち往生しています。ANTLR4 TestRig(grun)はjava.lang.NoClassDefFoundError例外をスローします


システム:10(1703)
のWindows
のJava 8、151
ANTLR 4、V4.7を更新

マイ%CLASSPATH%システム変数(.;"D:\Program Files\Java\libs\antlr-4.7-complete.jar";)として設定されています。
%PATH%にはantlr4.batgrun.batがあり、コマンドラインからantlr4を実行できます。

antlr4.batjava -cp %CLASSPATH% org.antlr.v4.Tool %*
grun.batjava -cp %CLASSPATH% org.antlr.v4.gui.TestRig %*

私は-cpオプションを使用しない場合、いくつかの他の人が問題を抱えて見てきたので、私は明示的に-cp %CLASSPATH%を使用しています。


私の問題はこれです:
私は例の文法Hellogrun Hello r -tokens)私は、このエラーメッセージ

Exception in thread "main" java.lang.NoClassDefFoundError: HelloLexer (wrong name: main/resource/hello/HelloLexer) 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(Unknown Source) 
     at java.security.SecureClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.access$100(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at org.antlr.v4.gui.TestRig.process(TestRig.java:129) 
     at org.antlr.v4.gui.TestRig.main(TestRig.java:119) 

私が間違ってやっているものに任意のアイデアを得る上でgrunを実行すると?
事前に感謝します!


EDIT:
私は答えを見つけたと思いました。 cdコンパイルされたファイルが(ルートプロジェクトフォルダからgrunを呼び出すのではなく)フォルダーに入ったので、問題の例を調べることができました。

私自身のプロジェクトをセットアップしようとしたとき、私は上記と同じエラーメッセージを出して同じ問題に遭遇しました。

今度は、を-packageオプションで実行した後、grunが不満を表明しているようです。

これはなぜですか?

答えて

0

うわー...解決策は、私の問題は、私は私のテストプロジェクトのルートフォルダにcd D」を持っていた、と私はちょうど(およびコールにcdに持っていたことだった...、もちろん、簡単な解決策でしたgrunから)コンパイルされたファイルがあるディレクトリ。

編集:
私はまだgrunに問題があるように思えます。編集された質問を参照してください。

EDIT2:私が言うことができるものから
grunantlr4-packageオプションと非常によく協力していません。
私のソリューションは、私がGradleプロジェクトとして自分のプロジェクトをセットアップしなければならないということでした。

+0

あなたはgradleプロジェクトとして設定することで何を意味するのか教えてください。 –

関連する問題