java makefile不执行run命令

java makefile不执行run命令,java,makefile,Java,Makefile,我在我的项目中创建了一个makefile JFLAGS = -g JC = javac JVM= $(JAVA_HOME)/bin/java .SUFFIXES: .java .class .java.class: ; $(JC) $(JFLAGS) $*.java CLASSES = \ Class1.java \ Class2.java \ Main.java MAIN = Main default: classes classes: $(CLASSE

我在我的项目中创建了一个makefile

JFLAGS = -g
JC = javac
JVM= $(JAVA_HOME)/bin/java
.SUFFIXES: .java .class
.java.class: ; $(JC) $(JFLAGS) $*.java

 CLASSES = \
    Class1.java \
    Class2.java \
    Main.java

 MAIN = Main

 default: classes

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

 run : classes $(JVM) $(MAIN).class
下面的代码运行并编译我的java类,但不执行run命令。 完成生成文件,不执行我的运行。。
为什么在我的代码中出错?

Make将只尝试在makefile中构建第一个目标(以及该目标的所有先决条件,以及这些目标的所有先决条件,等等),要选择不同的或多个顶级目标(或“目标目标目标”),您可以在命令行上指定它们:
使运行

您可以将
run
目标移动为makefile中的第一个目标,然后默认情况下将运行它

或者,如果您想要运行多个“顶级”目标,您可以在另一个规则中收集它们;例如,在上面的示例中,您可以使用:

default: classes run
尽管根据长期的约定,此目标被命名为
all
(但这只是一种约定)。

您需要将“run”命令添加为“run”目标的操作,而不是先决条件:

run : classes
        $(JVM) $(MAIN)
#make sure the line above begins with a tab

不要浪费时间试图用make构建Java项目。Make在这里做得不好——一旦你将类组织在包中,你就完蛋了(你永远都不会得到正确的依赖关系)。帮你自己一个忙,学习
ant
maven
的基本知识。我理解你的观点,但我需要这些来学习如何工作。谢谢你的回复。谢谢你的回复,你的回答向我展示了更多关于makefiles的信息,我一直在努力解决我的问题。谢谢,现在开始工作,我使用“makerun”运行,然后执行我的主类。