javac中的Makefile编译问题

javac中的Makefile编译问题,java,makefile,compilation,Java,Makefile,Compilation,我对makefile有问题。我有三节课。他们做的事情很简单。一个对减法进行加法运算,最后一个将实例化这两个运算,并简单地打印结果的加法和减法运算 现在,当我创建makefile时,我编译Plus.java和Minus.java,但不知道如何编译主类,因为它依赖于前两个类。如果可能的话,我想从makefile编译并运行它 当我尝试运行make时,我得到了上述结果: javac -g Plus.class Minus.class javac: invalid flag: Plus.class Usa

我对makefile有问题。我有三节课。他们做的事情很简单。一个对减法进行加法运算,最后一个将实例化这两个运算,并简单地打印结果的加法和减法运算

现在,当我创建makefile时,我编译Plus.java和Minus.java,但不知道如何编译主类,因为它依赖于前两个类。如果可能的话,我想从makefile编译并运行它

当我尝试运行make时,我得到了上述结果:

javac -g Plus.class Minus.class
javac: invalid flag: Plus.class
Usage: javac <options> <source files>
use -help for a list of possible options
make: *** [Operation.class] Error 2

您需要运行javac-g Plus.java Minus.java(非.class)

您需要运行javac-g Plus.java Minus.java(非.class)

您需要将源文件的名称传递给javac:

javac -g Plus.java
更好的选择可能是:

javac -g *.java
Java世界中很少有人直接调用javac或使用makefiles。大多数人在开发时使用IDE:

日食:
Netbeans:

然后是用于最终/自动构建的更全面的构建工具:

蚂蚁:
马文:

这两者都可以从make调用,或者实际上调用make本身,以便与现有构建系统集成

编辑: 似乎您有一个makefile问题。看看这是否有效:

JCC = javac
JCR = java
JFLAGS = -g

all:
[TAB]$(JCC) $(JFLAGS) *.java

run:
[TAB]$(JCR) Operation

clean:
[TAB]$(RM) *.class

将[TAB]替换为实际的TAB字符-您可能知道这在make中非常重要

您需要将源文件的名称传递给javac:

javac -g Plus.java
更好的选择可能是:

javac -g *.java
Java世界中很少有人直接调用javac或使用makefiles。大多数人在开发时使用IDE:

日食:
Netbeans:

然后是用于最终/自动构建的更全面的构建工具:

蚂蚁:
马文:

这两者都可以从make调用,或者实际上调用make本身,以便与现有构建系统集成

编辑: 似乎您有一个makefile问题。看看这是否有效:

JCC = javac
JCR = java
JFLAGS = -g

all:
[TAB]$(JCC) $(JFLAGS) *.java

run:
[TAB]$(JCR) Operation

clean:
[TAB]$(RM) *.class

将[TAB]替换为实际的TAB字符-您可能知道这在make中非常重要

试试这个。唉,管理java类依赖是一个痛苦的使用(在那里做了比较大的项目),所以你仍然应该认真考虑使用蚂蚁或其他适当的工具。
JCC = javac

JCR = java

JFLAGS = -g

default: Operation.class

Plus.class: Plus.java
            $(JCC) $(JFLAGS) Plus.java

Minus.class: Minus.java
             $(JCC) $(JFLAGS) Minus.java

Operation.class: Operation.java Plus.class Minus.class
                $(JCC) $(JFLAGS) Operation.java 

run: Operation.class
    $(JCR) Operation.class

clean: $(RM) *.class

试试这个。唉,管理java类依赖是一个痛苦的使用(在那里做了比较大的项目),所以你仍然应该认真考虑使用蚂蚁或其他适当的工具。
JCC = javac

JCR = java

JFLAGS = -g

default: Operation.class

Plus.class: Plus.java
            $(JCC) $(JFLAGS) Plus.java

Minus.class: Minus.java
             $(JCC) $(JFLAGS) Minus.java

Operation.class: Operation.java Plus.class Minus.class
                $(JCC) $(JFLAGS) Operation.java 

run: Operation.class
    $(JCR) Operation.class

clean: $(RM) *.class

我解决了。这是包裹的问题。我在netbeans中编辑了我的文件,并保持:

一揽子业务

给他们每个人

所以我得到了要编译的操作,但现在它没有运行

愚蠢的问题

JCC = javac

JCR = java

JFLAGS = -g

default: Operation.class Plus.class Minus.class

Plus.class: Plus.java
    $(JCC) $(JFLAGS) Plus.java

Minus.class: Minus.java
    $(JCC) $(JFLAGS) Minus.java

Operation.class: Operation.java Plus.java Minus.java
    $(JCC) $(JFLAGS) Operation.java  Plus.java Minus.java

run:
    $(JCR) Operation

clean:
    $(RM) *.class

我解决了。这是包裹的问题。我在netbeans中编辑了我的文件,并保持:

一揽子业务

给他们每个人

所以我得到了要编译的操作,但现在它没有运行

愚蠢的问题

JCC = javac

JCR = java

JFLAGS = -g

default: Operation.class Plus.class Minus.class

Plus.class: Plus.java
    $(JCC) $(JFLAGS) Plus.java

Minus.class: Minus.java
    $(JCC) $(JFLAGS) Minus.java

Operation.class: Operation.java Plus.java Minus.java
    $(JCC) $(JFLAGS) Operation.java  Plus.java Minus.java

run:
    $(JCR) Operation

clean:
    $(RM) *.class

不要使用makefile for java。使用Ant或Maven。我想使用MaFrimes文件,因为我还必须使用java和C++文件。我知道MaFrimes,但不知道java。我不知道这个makefile是如何工作的,也不知道它是如何给出这个错误的。您只是在运行
make
,还是给它一个目标,比如
makepluss.class
?不要将makefile用于java。使用Ant或Maven。我想使用MaFrimes文件,因为我还必须使用java和C++文件。我知道MaFrimes,但不知道java。我不知道这个makefile是如何工作的,也不知道它是如何给出这个错误的。你只是在运行
make
,还是给它一个目标,比如
makepluss.class
?我想我不明白。我向您展示了我的makefile,也许我可以这样找到:JCC=javacjcr=java JFLAGS=-g默认值:Operation.class Plus.class:Plus.java$(JCC)$(JFLAGS)Plus.java减号.class:Plus.java$(JCC)$(JFLAGS)减.java操作.class:Operation.class$(JCC)$(JFLAGS)操作.class运行:Operation.class$(JCR)Operation.class clean:$(RM)*.classI我想我不明白。我向您展示了我的makefile,也许我可以这样找到:JCC=javacjcr=java JFLAGS=-g默认值:Operation.class Plus.class:Plus.java$(JCC)$(JFLAGS)Plus.java减号.class:Plus.java$(JCC)$(JFLAGS)减.java操作.class:Operation.class$(JCC)$(JFLAGS)操作.class运行:Operation.class$(JCR)Operation.class clean:$(RM)*.class就是这样。我目前正在做一个项目,我确实要给我们这些东西,而不是IDE的。谢谢你,但标签在那里。它只是没有出现在
ant
的post+1中,尽管使用
make
这种方式很有启发性。这就是问题所在。我目前正在做一个项目,我确实要给我们这些东西,而不是IDE的。谢谢你,但标签在那里。它只是没有出现在
ant
的post+1中,尽管以这种方式使用
make
会很有帮助。请尝试使用
101
按钮将
Makefile
格式化为代码。尝试使用
101
按钮将
Makefile
格式化为代码。