java - 为 jar 可执行文件创建 Makefile

标签 java command-line jar makefile

我目前正在使用以下 Makefile:

    JAVAC=javac
    sources = $(wildcard *.java)
    classes = $(sources:.java=.class)

    all: myProgram

    myProgram: $(classes)

    clean :
        rm -f *.class

    %.class : %.java
        $(JAVAC) $<

myProgram 最初只是一个 .java 文件,但我已将其替换为 .jar 可执行文件。我本质上仍然只是希望能够做一些简单的事情,例如:

    make myProgram

如何修改我的 Makefile 来实现此目的?感谢您的任何意见/建议。

最佳答案

只需添加一个新目标(例如“jar”),并为其提供适当的“jar”命令

示例:

JAVAC=javac
sources = $(wildcard *.java)
classes = $(sources:.java=.class)

all: myProgram

myProgram: $(classes)

clean :
    rm -f *.class

%.class : %.java
    $(JAVAC) $<

jar: $(classes)
    jar cvf myjarfile.jar $(classes) 

您可以通过多种方式“调整”此示例。例如,您可能想要参数化“jar”命令(例如 JAR=jar),您可能想要创建一个 list (也许让 makefile 本身使用适当的“echo”命令动态创建一个 list )等等。

以下是“jar”的 Oracle 文档:

http://docs.oracle.com/javase/tutorial/deployment/jar/build.html

关于java - 为 jar 可执行文件创建 Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25735553/

相关文章:

java - 尝试在 QT 项目中调用 Java 代码时找不到类异常

java - 使用 Eclipse 创建可执行 jar

java - 如何在 Spring Boot 中将 TTL 附加到 Redis 缓存中的每个条目

java - 未找到 getView() 和 getActivity()

java - 解析文本文件的最简洁方法

command-line - Fortran 命令行参数

c - 为什么这2个char*变量的值在退出函数后没有改变?

ruby - 在命令行中使用 t 回复推文

java - 如何查看可执行 Jar 正在使用哪个 JVM?

OSGI 内的 Java Azure SDK