Java 无法使用makefile找到或加载主类

Java 无法使用makefile找到或加载主类,java,class,makefile,Java,Class,Makefile,我搜索了建议的答案,但没有找到适合我的答案。 Makefile编译所有东西时都有任何错误,但在尝试执行java程序时,我发现错误无法找到主类bin.program.class,即使尝试单独编译程序,也会弹出相同的错误。 我有多个.java文件,其中包含不同的类,我正在使用目录lib/中的一个库(.jar)文件。没有它,java编译器会出现多个错误 SRC = src LIBDIR = lib BIN = bin JAVA_FILES=${wildcard ${SRC}/*.java} CLASS

我搜索了建议的答案,但没有找到适合我的答案。 Makefile编译所有东西时都有任何错误,但在尝试执行java程序时,我发现错误
无法找到主类bin.program.class
,即使尝试单独编译程序,也会弹出相同的错误。 我有多个
.java
文件,其中包含不同的类,我正在使用目录
lib/
中的一个库(.jar)文件。没有它,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有main类。

您应该在bin目录中并使用

java -cp ./ Program

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

根据给出的答案,它真的很有帮助,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}

您使用什么命令来调用应用程序?另外,您考虑过使用Ant而不是make吗?我尝试过使用
javabin.Program.class-cp-bin
javabin.Program.class-cp-lib
这两种方法都给出了与前面提到的相同的错误。我的任务是制作一个这样的文件。在bin文件夹中,它可以工作
java-cp./:../lib/*程序
。我该怎么做才能在我的Makefile中工作?对不起,我不知道makefiles。因此,您需要自己解决这个问题,也许您可以单独提出一个问题:)您的Makefile与您如何调用程序几乎没有关系@杰伊·史密斯的答案是正确的。