我正在尝试为我的 java 程序创建一个 makefile。该程序在我的 IDE 中编译正确。这是我的 makefile 的样子。
JAVAC=javac
sources = $(wildcard */*/*/*.java)
classes = $(sources:.java=.class)
all: $(classes)
clean :
rm -f */*/*/*.class
%.class : %.java
$(JAVAC) $<
当我运行它时,它发现第一个文件可以正常编译,但第二个文件则失败。第一个文件恰好是一个接口,第二个文件是该接口的实现。这是错误信息。
javac p1/p2/event/Event.java
javac p1/p2/event/RegisterEvent.java
p1/p2/event/RegisterEvent.java:7: error: cannot find symbol
public class RegisterEvent implements p1.p2.event.Event {
^
symbol: class Event
location: package p1.p2.event
1 error
make: *** [p1/p2/event/RegisterEvent.class] Error 1
为什么我编译时找不到类?
您需要将类路径添加到 javac 命令中。
类似
javac -cp . p1/p2/event/Event.java