我需要能够编译我的程序,然后每次将不同的 .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/