ANTLR4 在 MacOS 上出现“错误:包 org.antlr.v4.runtime 不存在”

ANTLR4 'error: package org.antlr.v4.runtime does not exist' on MacOS

提问人:Lula 提问时间:11/16/2023 最后编辑:Bart KiersLula 更新时间:11/16/2023 访问量:38

问:

我正在尝试使用 ANTLR4 为一个 uni 项目构建编译器,但现在我被卡住了。我试过跑步

javac TestPiinkk.java Piinkk*.java  

出现了大约 100 个错误:

enter image description here

我看过其他一些问题,因为没有添加类路径,我尝试添加它,但它再次不起作用。

enter image description here

我知道还有其他类似的问题,但是关于Mac的信息很少,而且我一直无法找到解决方案。

如果有人能帮助我,我将不胜感激,而且我是 Mac 环境和 ANTLR 的新手,所以如果你能就如何处理这个项目提供一些建议,那真的会让我的一周变得愉快。

例如,我目前正在使用 VS Code,我尝试使用 python 作为我的目标语言,但我注意到有更多关于 java 作为目标语言的信息,我知道有些人使用 IntelliJ,你有什么建议吗? 我目前正在阅读“The Definitive ANTLR 4 Reference, 2nd Edition”,您知道我可以找到更多信息的其他地方吗?

macOS 编译器构造 ANTLR ANTLR4

评论

0赞 kaby76 11/16/2023
这是因为您尚未在命令行上为 javac 设置类路径。.请注意,您必须添加 .jar 的路径和“.”(点),包含源的目录。从命令行运行 java 以运行驱动程序时,请确保再次设置 .取消设置类路径的任何全局环境变量。javac -cp "absolute-path-to-antlr-complete.jar:." *.java-classpath

答:

0赞 Bart Kiers 11/16/2023 #1

假设你看起来像这样:TestPiinkk.java

import org.antlr.v4.runtime.*;

public class TestPiinkk {
    // TODO
}

如果你现在尝试像这样编译它:

javac *.java

你会得到你之前遇到的错误:

TestPiinkk.java:1: error: package org.antlr.v4.runtime does not exist
import org.antlr.v4.runtime.*;
^
1 error

只需将 ANTLR jar 下载到与文件相同的位置即可:.java

wget https://www.antlr.org/download/antlr-4.13.1-complete.jar

并再次编译,但现在使用 (classpath) 参数:-cp

javac -cp antlr-4.13.1-complete.jar *.java