Я пытаюсь создать make-файл для моей java-программы, которая включает в себя несколько файлов. Раньше я имел успех создавая Makefile для одного файла с помощью этого:Java Makefile для нескольких файлов
QuickSort.class: QuickSort.java
javac -g QuickSort.java
чистые: ет -f QuickSort.class
Поскольку мне нужно ему собрать несколько файлов, я обновил это следующим образом:
Dijkstra.class:
Dijkstra3.java\
DirGraph.java
FibDijkstra.java\
FibHeap.java\
MinDijkstra.java\
MinHeap.java\
javac -g Dijkstra3.java
javac -g DirGraph.java
javac -g FibDijkstra.java
javac -g FibHeap.java
javac -g MinDijkstra.java
javac -g MinHeap.java
clean:
rm -f Dijkstra.class
Когда я пытаюсь запустить сделать на этом, он производит ошибку «Нет правило, чтобы сделать целевую JAVAC необходимой Dijkstra.class». Я закрываю то, что у меня есть? Как я могу отредактировать его, чтобы он работал правильно? Благодаря!
РЕДАКТИРОВАТЬ: При повторной попытке, я, должно быть, что-то изменил из первоначального варианта. Теперь он создает список всех файлов без перерыва между командой say не существует. Очевидно, тогда я неправильно читаю все файлы.
EDIT 2: Я знаю, что есть
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
Dijkstra3.java\
DirGraph.java\
FibDijkstra.java\
FibHeap.java\
MinDijkstra.java\
MinHeap.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class
Когда я запускаю это, он не производит каких-либо ошибок в Makefile. Вместо этого он создает ошибки для самих включенных файлов. Что странно в том, что в NetBeans, когда я их подтягивал, ошибок нет? Что может быть причиной этого?
Лично я бы взглянуть на Ant и/или Maven или любой другой системы сборки, так как это поможет улучшить ваши общие навыки и помочь вам понять процесс сборки из командной строки в любом случае – MadProgrammer
Не должно быть '\\' после MinHeap.java – John3136
Кроме того, если вы используете maven, он может автоматически загружать плагины и зависимости для вас. – Majora320