【问题标题】:ANTLR v4 runtime Java packages not recognized [duplicate]ANTLR v4 运行时 Java 包无法识别 [重复]
【发布时间】:2021-10-30 06:07:17
【问题描述】:

我正在尝试使用 Java 运行 ANTLR v4。我正在尝试运行以下文件,Hello.java:

import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.ParseTree;

public class Hello {
    public static void main(String[] args) throws Exception {
        System.out.println("Testing");
    }
}

使用以下脚本 test.sh:

#!/bin/sh
ANTLR_LIB="antlr-4.9.2-complete.jar"

# Making an empty out directory
touch out
rm -r out
mkdir out

# Generating code
java -jar ${ANTLR_LIB} -no-listener -visitor Expr.g4 -o out/


# Adding in our own code
cp *.java out/

# Compiling everything together
javac -classpath ".;[MY FILE PATH]\antlr-4.9.2-complete.jar" -cp .:out:${ANTLR_LIB} out/Hello.java

# Showing the parse tree
# java -cp .:out:${ANTLR_LIB} org.antlr.v4.gui.TestRig Expr prog -gui $1

# Run the calculator
# java -classpath .:out/:${ANTLR_LIB} Calc $1


我已将 CLASSPATH 设置为包含 antlr-4.9.2-complete.jar,但是当我尝试运行脚本时,我遇到了这个错误:

我不确定如何解决此错误。

【问题讨论】:

  • 你的 javac 命令有 -cp-classpath 这很奇怪(我不知道这样做的结果是什么)。 antlr-4.9.2-complete.jar到底在哪里?
  • @tgdavies antlr-4.9.2-complete.jar 和 Hello.java 存放在同一个目录下: $ dir Hello.java antlr-4.9.2-complete.jar Hello.java antlr-4.9 .2-complete.jar

标签: java antlr antlr4


【解决方案1】:

如 cmets 中所述,您同时使用 -classpath-cp:不要。只需使用其中之一即可。

编译./out内的所有Java源文件(其中一些依赖于ANTLR运行时)可以如下完成:

Linux 和 Mac 操作系统

javac -cp .:out:antlr-4.9.2-complete.jar out/*.java

窗口

javac -cp .;out;antlr-4.9.2-complete.jar out\*.java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    相关资源
    最近更新 更多