【问题标题】:Makefile cannot find class in packageMakefile 在包中找不到类
【发布时间】:2014-02-03 04:12:15
【问题描述】:

我正在尝试为我的 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
  • @BevynQ 你是对的。如果你想让它成为一个答案,我会接受它。

标签: java compiler-construction makefile package


【解决方案1】:

您需要将类路径添加到 javac 命令。

类似javac -cp . p1/p2/event/Event.java

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多