java生成文件有问题


JFLAGS = -d bin -cp lib/slick.jar:lib/lwjgl.jar
JC = javac
.SUFFIXES: .java .class
.java.class: $(JC) $(JFLAGS) src/$*.java
CLASSES = 
          Game.java 
          Block.java 
          BlockMap.java 
default: classes
classes: $(CLASSES:.java=.class)
clean: $(RM) bin/*.class

我的源文件在src/,我想编译的文件在bin/。当我运行make时,它给了我这个错误

makefile:7: *** multiple target patterns.  Stop.

问题就在这里:

.java.class: $(JC) $(JFLAGS) src/$*.java

:

clean: $(RM) bin/*.class

这些不是规则而是命令。命令必须在它自己的行上,在行的开头有一个制表符。

.java.class: 
    $(JC) $(JFLAGS) src/$*.java
clean: 
    $(RM) bin/*.class

这并不是Makefiles和Java的所有问题,特别是这个Makefile。

既然您不知道如何管理Makefile,那么没有理由不使用更好的工具。下面是一个最小的Ant文件,它应该可以完成这项工作。而且因为Ant是为Java设计的,所以Make的大多数目录处理问题根本不存在。

作为奖励,您可以向任何Java开发人员寻求更多帮助。如今,Java开发人员和Makefile专家是相当少见的一对。

<project name="Game" default="classes">
    <target name="classes">
        <mkdir dir="bin" />
        <javac srcdir="src" destdir="bin" 
            classpath="lib/slick.jar;lib/lwjgl.jar"
            includeantruntime="false"/>
    </target>
    <target name="clean">
        <delete dir="bin" />
    </target>
</project>

相关内容

  • 没有找到相关文章

最新更新