【问题标题】:Makefile to compile java in directoriesMakefile 在目录中编译 java
【发布时间】:2017-05-13 20:32:43
【问题描述】:

我想创建一个 makefile 来编译特定目录中的 java 文件。这是我所拥有的:

JCC = javac
JCR = java
JFLAGS =
    -source 1.6 \
    -target 1.6 \
    -d out

main: folder all

all:
    $(JCC) $(JFLAGS) src/com/company/*.java

folder:
    mkdir out

但是一旦我在主目录中使用 ma​​ke 命令,它就会显示:

make: *** 缺少对象。停下来。

有人能指出我做错了什么吗? 提前感谢您的帮助。

--更新-- 我已经尝试过:

main:
    mkdir out
    javac -source 1.6 -target 1.6 src/com/company/*.java -d out

但还是:

“没有规则来制作目标'mkdir','main'需要。停止。”

---解决方案--- 不要在 gedit 中编写 makefile。它制作了错误的制表符。使用 nano 或其他。

【问题讨论】:

    标签: java linux makefile compilation


    【解决方案1】:

    我不擅长写makefile,不过最近用过这样的东西,可能你自己修改一下就够了,先编译代码再打包成jar:

    all:
      mkdir out
      javac -source 1.6 -target 1.6 src/main/java/com/my/package/*.java -d out
      jar cfm My.jar META-INF/MANIFEST.MF out/com/my/package/*.class

    【讨论】:

    • .class 对我来说足够公平,但它仍然不起作用(看看更新)
    • 为什么main: 不是all:?我现在在我的答案中有它,它可以工作,编译的类在新创建的out 文件夹中。
    • 事实证明 gedit 使制表符出错,这就是原因。将其重写为 nano 并工作。无论如何感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    相关资源
    最近更新 更多