gpt4 book ai didi

java - ANTLR4 TestRig (grun) 抛出 java.lang.NoClassDefFoundError 异常

转载 作者:行者123 更新时间:2023-12-04 17:48:22 28 4
gpt4 key购买 nike

我正在尝试学习 ANTLR 4,并且我正在按照The Definitive ANTLR 4 Reference 中给出的示例进行操作。遗憾的是,我停留在第一个示例上。


系统:
Windows 10 (1703)
Java 8,更新 151
ANTLR 4,v4.7

我的%CLASSPATH%设置为系统变量(.;"D:\Program Files\Java\libs\antlr-4.7-complete.jar"; ).
我的 %PATH% 中有 antlr4.batgrun.bat,我可以运行 antlr4 来自命令行。

antlr4.bat : java -cp %CLASSPATH% org.antlr.v4.Tool %*
grun.bat : java -cp %CLASSPATH% org.antlr.v4.gui.TestRig %*

我明确地使用了 -cp %CLASSPATH%,因为我看到其他一些人在不使用 -cp 选项时遇到问题。


我的问题是:
当我在示例语法 Hello (grun Hello r -tokens) 上运行 grun 时,我收到此错误消息

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)

对我做错了什么有什么想法吗?
非常感谢!


编辑:
我以为我找到了答案。通过 cd-ing 进入编译文件所在的文件夹(而不是从根项目文件夹调用 grun),我设法完成了所讨论的示例。

但是当我尝试建立自己的项目时,我遇到了同样的问题,并出现与上述相同的错误消息。

这一次,在我使用 -package 选项运行 antlr4 之后,grun 似乎在提示。

谁知道这是为什么?

最佳答案

我遇到了和你一样的问题。
@DoTheGenes 提醒我这可能是由 .g4 文件中的 @header {package com.blahblah.antlr4.hello;} 引起的。 Grun 在包重定位命令中有一些未修复的错误。当我用@header 删除这一行时,问题就解决了,我可以运行 grun gui、tree 和任何其他带有生成和编译文件的命令。
希望这能有所帮助。

关于java - ANTLR4 TestRig (grun) 抛出 java.lang.NoClassDefFoundError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47121549/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com