Java 编译子目录中的源代码并将其放置在另一个子目录中的Makefile

Java 编译子目录中的源代码并将其放置在另一个子目录中的Makefile,java,makefile,Java,Makefile,以下是我的课程结构: 主目录: Makefile src/ bin/ 我希望能够编译/src目录中的文件,并将后续的.class文件放在/bin目录中 以下是我到目前为止的情况: BIN = ./bin/ SOURCE = ./src/ LIST = $(BIN)ContactBook.class all: $(LIST) $(BIN)%: $(SRC)%.java javac -d $(BIN) $< BIN=。/BIN/ 来源=./src/ 列表=$(BIN)Co

以下是我的课程结构:

主目录:

Makefile  
src/
bin/
我希望能够编译/src目录中的文件,并将后续的.class文件放在/bin目录中

以下是我到目前为止的情况:

BIN = ./bin/
SOURCE = ./src/

LIST = $(BIN)ContactBook.class

all: $(LIST)

$(BIN)%: $(SRC)%.java
    javac -d $(BIN) $<
BIN=。/BIN/
来源=./src/
列表=$(BIN)ContactBook.class
全部:$(列表)
$(BIN)%:$(SRC)%.java
javac-d$(BIN)$<

您的规则不正确,您想将
.java
文件编译成
.class
文件,您目前没有处理此问题的规则

SRC:=$(通配符SRC/*.java)
OUT:=bin
列表:=$(SRC:SRC/%.java=$(OUT)/%.class)
全部:$(列表)
$(OUT)/%.class:src/%.java |$(OUT)
javac-d$|$<
元(出):
@mkdir$@

您可能需要将
.class
添加到目标的末尾才能使其工作。如果没有make,您将如何工作?如果没有make,我将如何工作:javac-d./bin//src/ContactBook.java问题是什么?