./run_tests "java -jar RunProgram.jar"
显然不理想,但它确实有效。我的目录当前看起来像这样
├── Makefile
├── run_tests (Unix executable)
└── src
└── vehicles
├── Wheels.java
└── Cars.java
└── RunProgram.java
tests
└── test1.txt
└── test2.txt
RunProgram.java是我的主要工具。
在线查找,我目前有一个看起来像这样的Makefile:
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
src/vehicles/Wheels.java \
src/vehicles/Cars.java \
src/RunProgram.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class
我现在有两个主要问题。
1。 Cars.java会为Wheels抛出“错误:找不到符号”,即使它先编译Wheels(以前我的命令顺序错误,现在是正确的)。
2。我最终需要向Makefile添加一个“测试”,这有其自身的问题。本质上,run_tests将通过System.in将所有内容放入tests文件夹中。但是,它在另一个目录中运行时遇到麻烦,因此我必须将RunProgram.class输出到根目录。
[[这是当打包结构中的唯一程序是RunProgram.java时,如何从命令行进行测试的方法] >>javac -d ./ ./src/RunProgram.java
./run_tests "java RunProgram"
但是,当我现在尝试运行javac时,出现错误,指出包导入不存在。这就是为什么我要使用Makefile的原因,因为这是理想的解决方案。我需要一种使用Makefile编译程序并编写可以正确调用run_tests的“ make test”命令的方法TL; DR
我也愿意接受一个解决方案,该解决方案允许我从命令行运行javac并从那里运行测试,但首选Makefile]]
我的目录当前如下所示├──Makefile├──run_tests(Unix可执行文件)└──src└──车辆├──Wheels.java└──Cars.java└──RunProgram.java测试└── ..../run_tests "java -jar RunProgram.jar"
显然不理想,但它确实有效。./run_tests "java -jar RunProgram.jar"
显然不理想,但它确实有效。