【发布时间】:2014-08-20 09:13:50
【问题描述】:
我一直在尝试测试一些学生编写的简单项目。我在 Ubuntu 上对其进行测试,该项目要求我使用 ANTLR 和 Makefile。 找到一个编译执行成功的makefile、文件和文件夹的配置是一场噩梦。
所以基本上这是文件夹/文件设置:
Makefile
test.txt
laboratorio/
lab02/
Main.java
Lab02.g
Main.java 的内容相当简单。他们只是逐个标记地读取语法标记:
package laboratorios.lab02;
import org.antlr.v4.runtime.*;
public class Main{
public static void main(String[] args) throws Exception{
try{
Lab02 lexer = new Lab02(new ANTLRFileStream(args[0]));
while (lexer.nextToken().getType() != Token.EOF);
}catch(ArrayIndexOutOfBoundsException aiobe){
System.err.println("Must provide a valid path to the filename with the tokens");
System.exit(1);
}catch(Exception e){
System.err.println("Must provide a valid path to the filename with the tokens");
System.exit(1);
}
}
}
Lab02.g(语法)的内容与问题无关,但它会生成一个 Lab02.java 文件(带有包 labatorios.lab02),该文件必须由 Main.java 文件编译和引用。
尝试在 Ubuntu 上测试 makefile 时出现问题。在我尝试的每个配置中,我都不断收到错误(在编译或运行 Main java 文件时),例如:
- java.lang.NoClassDefFoundError: org/antlr/v4/runtime/CharStream
- 无法找到或加载主类 org.antlr.v4.Tool
- 错误:无法找到或加载主类
我已经按照本教程的确切步骤在我的电脑上设置了 antlr:Getting Started with ANTLR v4
【问题讨论】:
标签: java ubuntu makefile antlr antlr4