编辑:本质上,我正在尝试做与键入“javac sim.java”然后“java sim(命令)”相同的事情。有没有办法用 makefile 替换它?
于是在网上看了很多例子,试着修改成自己需要的,但是都没有效果。我需要一个 makefile,这样我的老师就可以通过在终端中键入“make”来创建我的项目(出于某种原因,这是项目的要求)。我的最终目标是能够键入“sim”,然后键入我的代码定义的所需命令。代码在 eclipse 中运行,但我无法在终端中使用这些命令运行它。它会生成文件,但当我尝试在终端中键入“sim ….(参数)”时,它会显示“sim:未找到命令”。我敢肯定这是一个愚蠢的问题,但我们在学校没有学过这个,我也没有使用 Makefile 的经验。
下面是我的生成文件。
JFLAGS = -g
JC = javac
OPT = -O3
#OPT = -g
WARN = -Wall
sim: sim.class
sim.class: sim.java
$(JC) $(JFLAGS) sim.java
clean:
$(RM) sim.class
clobber:
$(RM) sim.class
原文由 Dude 发布,翻译遵循 CC BY-SA 4.0 许可协议
一旦你有多个课程,就可以使用带有 java 的 make 来练习用锤子拧螺丝。
工作的 java 代码将使用包。因此,您将拥有一个复杂的目录树,它反映了您的包结构,其中包含您的 .java 源文件。编写“查看”所有这些文件的 make 规则是一件痛苦的事情。
您应该同时对所有源文件调用 javac 以获得正确的结果。因此,通常的“运行一个命令将一个源文件转换为一个编译文件”的 make 模式并不适用。
但是,目前您的主要问题似乎是您希望 java 生成可执行文件;一个名称类似于“sim”的文件。不,不会以任何简单的方式发生。 java编译器生成.class文件;一整棵树用于您的源文件。您可以直接从它们运行,也可以将它们打包到 JAR 文件中。
要获得看似简单的命令行可执行文件的所有方法,您需要使用一个更复杂的工具,在前面用一个脚本将所有这些包装起来。
现在,您只需要做:
在您的 makefile 完成后运行。