我搜索了建议的答案,但我找不到适合我的答案。
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有主类。
答案 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}