1

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

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 有主类。

4

2 回答 2

2

您应该在 bin 目录中并使用

java -cp ./ Program

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

于 2013-06-07T18:28:15.033 回答
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}
于 2013-06-07T19:06:34.380 回答