我有一个包含两个包的 Java 项目:
src
Main.java
lib
AVLTree.java
TreeNode.java
TreeVisualizer.java
我想写一个makefile,把所有的
.java
文件编译成.class
文件,分别存入bin/lib
和bin/src
。我怎样才能写一个简单的Makefile
来做到这一点?
我现在使用的命令是:
javac -d bin lib\* src\*
(目前在 Windows 上)
要运行,我正在使用:
java -cp bin\ src\Main.java
这是一个简单的 Makefile,它应该做你想做的事:
JC = javac
JFLAGS = -d bin
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
SRCDIR = src
LIBDIR = lib
BINDIR = bin
SRCS = $(wildcard $(SRCDIR)/*.java)
LIBS = $(wildcard $(LIBDIR)/*.java)
CLASSES = $(SRCS:$(SRCDIR)/%.java=$(BINDIR)/%.class) $(LIBS:$(LIBDIR)/%.java=$(BINDIR)/%.class)
default: classes
classes: $(CLASSES)
clean:
$(RM) $(BINDIR)/*.class