javac找不到引用的类

时间:2012-02-26 17:52:16

标签: javac gnu-make

我似乎无法理解这个问题。我有一个简单的项目,我把它放在一起用于教育目的,但是,无论如何,它都不会编译。我无法弄清楚我错过了什么。下面是makefile:

SHELL := /usr/bin/env bash
JFLAGS = -g -classpath "$(PWD)/src/tld/assignments/;$(PWD)/lib/;$(CLASSPATH)"
JC = javac
.SUFFIXES: .java .class
.java.class:
    $(JC) $(JFLAGS) $*.java

CLASSES = src/tld/assignments/StoreDao.java \
src/tld/assignments/Store.java

default: classes

classes: $(CLASSES:.java=.class)

clean: $(RM) *.class

StoreDao编译,但商店,引用StoreDao没有,并说:

src/tld/assignments/Store.java:9: cannot find symbol
symbol  : class StoreDao

我尝试过使用斜杠和没有,冒号,分号等的类路径 - 没有区别。

特别通知,因为我知道有人肯定会这么说。不,我不想/不能使用Ant或Maven。这项任务的重点是使用GNU Make。 (我可以用Ant或Maven等做,这不是问题)。

另一个注意事项,为了以防万一,我调查了类似的问题发布到SO - 这些都不是我的情况(所有其余的都证明是语法错误或海报方面的某种遗忘,这不是)。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

相当出色,尽管javac忽略了路径命名中的所有约定,但它在不同的OS上也不一致,因此,Linux上的路径分隔符似乎不是分号 - 它是冒号。

当然,官方手册从未提及,因为用户在运行程序之前应该具备必备知识...... 叹息