java - 如何创建一个 Makefile 来编译和运行带有命令行参数的 java 代码?

标签 java compilation makefile executable

我需要能够编译我的程序,然后每次将不同的 .txt 文件作为第一个命令行参数执行 3 次不同的时间,而这一切都需要通过一个“make”命令来完成。我希望 Makefile 执行的相应终端命令如下:

javac MainDriver.java FSA.java State.java Transition.java
java MainDriver test1.txt
java MainDriver test2.txt
java MainDriver test3.txt

这是我目前拥有的:

JC = javac
JCR = java

.SUFFIXES: .java .class
.java.class:
    $(JC) $*.java

CLASSES = \
    MainDriver.java \
    FSA.java \
    State.java \
    Transition.java 

default: classes

classes: $(CLASSES:.java=.class)

clean:
    $(RM) *.class *~

最佳答案

JC = javac
JCR = java

.SUFFIXES: .java .class
.java.class:
    $(JC) $*.java

CLASSES = \
    MainDriver.java \
    FSA.java \
    State.java \
    Transition.java 

TXT_FILES = \
    test1.txt \
    test2.txt \
    test3.txt \

default: classes exec-tests

classes: $(CLASSES:.java=.class)

clean:
    $(RM) *.class *~

exec-tests: classes
    set -e; \
    for file in $(TXT_FILES); do $(JCR) MainDriver $$file; done;


.PHONY: default clean classes exec-tests

关于java - 如何创建一个 Makefile 来编译和运行带有命令行参数的 java 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15126291/

相关文章:

makefile - 有没有办法使(递归) make -j 调用深度优先?

java - Java中删除集合方法的通用类型

java - 存储在 ModelMap 中的 HTML 标签不会被浏览器解释为 HTML

command-line - MinGW make 命令的奇怪问题(使用 muParser)?

c - 在 C 编译期间创建的临时 'object' 文件(带有字母数字文件扩展名)是什么?

c++ - 用于编译 .cpp 文件的 Qt .pro 文件依赖项

c++ - 使用 cygwin 在 Windows 上安装 GMP

java - 如何创建 JPA 查询以按远程引用数量的降序返回对象?

java - 是否可以选择/单击一张图像的多个部分?

java - 在 Java EE 项目中,删除我的类后,我无法取回它们?