繁体   English   中英

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

[英]Is there any way to include Antlr in the Java compilation process?

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

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

java -jar generator.jar folderName/Main.java

步骤2 :(我编译了newMain.java文件)

javac folderName/newMain.java

第三步:(我运行newMain.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

这实际上非常简单,并且不执行任何错误检查(例如,翻译或编译错误)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM