无法使用makefile查找或加载主类

时间:2013-06-07 18:11:20

标签: java class makefile

我搜索了建议的答案,但我找不到适合我的答案。 Makefile编译所有错误,但在尝试执行我的java程序时,我得到错误Could not find main class bin.Program.class即使尝试单独编译程序,也会弹出相同的错误。 我有多个.java文件,其中包含不同的类,我在目录lib/中使用一个库(.jar)文件。没有它,java compilator会给出多个错误。

SRC = src
LIBDIR = lib
BIN = bin
JAVA_FILES=${wildcard ${SRC}/*.java}
CLASS_FILES=${JAVA_FILES:${SRC}/%.java=${BIN}/%.class}
CLASSPATH="${LIBDIR}/*"
all: run
run: ${CLASS_FILES}
     java ${CLASS_FILES} -cp ${CLASSPATH}
${CLASS_FILES}: ${JAVA_FILES}
     javac $^ -d ${BIN} -cp ${CLASSPATH}

Eclipse编译并运行程序正常,而Program.java有主类。

2 个答案:

答案 0 :(得分:2)

您应该在bin目录中并使用

java -cp ./ Program

bin只是一个文件夹,所以不要把它放进去。而Program.class不是类的名称,Program是。

答案 1 :(得分:0)

给出答案,它确实有帮助,现在makefile看起来像它的工作原理:

SRC = src
LIBDIR = lib
BIN = bin
JAVA_FILES=${wildcard ${SRC}/*.java}
CLASS_FILES=${JAVA_FILES:${SRC}/%.java=${BIN}/%.class}
CLASSPATH="${LIBDIR}/*"
all: run
run: ${CLASS_FILES}
     java -cp ${BIN}:${LIBDIR}/* Program
${CLASS_FILES}: ${JAVA_FILES}
     javac $^ -d ${BIN} -cp ${CLASSPATH}