【问题标题】:Java Makefiles AlternativesJava Makefile 替代品
【发布时间】:2016-05-25 20:16:47
【问题描述】:

我有一个可以用任何语言完成的项目。我用 Java 编写了我的项目。对于提交,教授要求我们提供源代码的 tar 以及生成文件。从我一直在阅读的内容来看,听起来好像没有必要为 Java 程序提供生成文件。我也明白仍然可以创建一个makefile。我试图查看几个用于创建 makefile 的示例,但遇到了几个问题。如果我要绕过 makefile,我需要在提交中包含哪些文件?我最好的猜测是包含 .class 文件或 .xml(Ant 项目,我在 NetBeans 中工作)。另外,我是否需要包含其他内容来代替 makefile?

编辑:我创建 makefile 的尝试如下所示:

JFLAGS = -g
JC = javac
#
.SUFFIXES: .java .class
.java.class:
    $(JC) $(JFLAGS) $*.java
CLASSES = \
    QuickSort.java \
default: classes
classes: $(CLASSES:.java=.class)
clean:
    $(RM) *.class

它的实际文件名是 Makefile.mak。我尝试了几种不同的运行方式。当我在 MinGW 中输入 make 时,我得到“make: *** No targets specified and no makefile found. Stop”。我也试过输入 Makefile.mak。这会产生一长串未找到的命令。

【问题讨论】:

  • 如果教授想要一个makefile,不提供makefile似乎不是一个成功的策略。我建议你写一个makefile。
  • 我的一个同学正在用python编写他的程序,并问他是否需要一个makefile,因为python不需要。老师的回答是,他并不真的需要一个,尽管仍然可以制作一个。我的理解是,NetBeans 以某种方式为我创建了一个 makefile 的等价物。
  • 我在这里找到了一个包含大量信息的好参考:stackoverflow.com/questions/2209827/…

标签: java ant compilation makefile


【解决方案1】:

你可以让它变得更简单,(请注意,命令前面是强制性标签)

QuickSort.class: QuickSort.java
        javac -g QuickSort.java

clean:
        rm -f QuickSort.class

【讨论】:

  • 我最初收到 javac command not found 错误。我通过编辑我的环境变量来解决这个问题。我仍然收到 clean:: command not found 和 QuickSort.class :: command not found。我将如何解决这些错误?
  • 以上是makefile语法。将其放在名为Makefile 的文件中。默认目标是第一个QuickSort.class(它取决于QuickSort.java)。
  • 看来我明白了。抱歉,我在尝试按照说明操作时可能有点紧张,但我非常感谢您的帮助。
  • 没有。创建 Makefile 的 tar 文件和 java 源文件 (tar cf MyProject.tar Makefile QuickSort.java)。您可以包括QuickSort.class,但我相信练习的重点是您的教授打算构建并运行它。
  • 没有。它是文件Makefile(命令make 使用一个make 文件命名 Makefile)。您还需要源文件。请参阅我的示例 tar 命令。它包括MyProject.tar 中的MakefileQuickSort.java,这是(我相信)你被要求做的事情。
猜你喜欢
  • 2010-12-24
  • 2012-02-28
  • 2010-11-08
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-13
  • 2011-01-24
相关资源
最近更新 更多