有没有办法在Java编译过程中包含Antlr?

时间:2014-02-25 17:01:40

标签: java compilation ide antlr antlr4

我正在使用Antlr4来创建Java(Java 7)源转换工具。我将Main.java文件作为输入并将其转换为输出newMain.java源文件,该文件对应于同一程序,但稍有更改。要运行我的转换工具,我使用导出的generator.jar文件,如下所示:

Step1(我使用generator.jar通过使用以下命令创建newMain.java文件):

java -jar generator.jar folderName/Main.java

Step2 :(我编译newMain.java文件)

javac folderName/newMain.java

Step3 :(我运行newMain.class文件)

java newMain

我想知道是否有其他方法可以执行此操作,这对用户是透明的(通过命令行或使用IDE)?我的意思是用户应该只编译他的Main.java类,而不会看到生成的newMain.java源文件既不是newMain.class。实际上,新生成的.class文件应该替换最初的Main.class文件。

1 个答案:

答案 0 :(得分:1)

我不知道你正在使用什么构建工具,但是你提到了命令行,所以在Bourne shell中可能是这样的:

#!/bin/sh

FOLDER=folderName
CLASS=Main

java -jar generator.jar $FOLDER/$CLASS.java

javac $FOLDER/new$CLASS.java
/bin/mv $FOLDER/new$CLASS.class $FOLDER/$CLASS.class
/bin/rm $FOLDER/new$CLASS.java

java $FOLDER/$CLASS

这非常简单,不会进行任何错误检查(例如翻译或编译错误)。