Мой каталог в настоящее время выглядит следующим образом
├── 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 выдает «ошибка: не удается найти символ» для колес, даже если он компилирует колесикиво-первых (раньше у меня был неправильный порядок, теперь он правильный).
2. Мне понадобится в конце добавить «тест» в Makefile, который поставляется с собственнымпроблемы. По сути, run_tests поместит все в папку тестов через System.in. Однако у него проблемы с запуском вещей в другом каталоге, поэтому мне нужно вывести RunProgram.class в корневой каталог.
ЭТО КАК Я ПРОБЫВАЮ ТЕСТЫ ИЗ КОМАНДНОЙ СТРОКИ, КОГДА ЕДИНСТВЕННАЯ ПРОГРАММА ВСТРУКТУРА ПАКЕТА БЫЛА RunProgram.java
javac -d ./ ./src/RunProgram.java
./run_tests "java RunProgram"
Однако, когда я пытаюсь запустить javac, я получаю ошибки, что импорт пакетов не существует. Вот почему я использую Makefile, так как это идеальное решение.
TL; DR Мне нужен способ скомпилировать мою программу с Makefile и написать команду "make test", котораямогу правильно вызвать run_tests
Я также готов принять решение, которое позволяет мне запускать javac из командной строки и запускать тесты оттуда, но Makefile предпочтительнее