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



我正在使用Antlr4创建一个Java(Java 7)源代码转换工具。我将 Main.java 文件作为输入,并将其转换为输出 newMain.java 源文件,该文件对应于相同的程序,但进行了细微的更改。要运行我的转换工具,我正在使用导出的生成器.jar文件,如下所示:

Step1(我使用生成器.jar使用以下命令创建 newMain.java 文件):

java -jar generator.jar folderName/Main.java

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

javac folderName/newMain.java

步骤3:(我运行新的主.class文件)

java newMain

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

我不知道

你用的是什么构建工具,但你提到了命令行,所以在 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

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

相关内容

  • 没有找到相关文章

最新更新