java - 创建一个用于从 Java/Clojure 执行的 jar 文件

标签 java macos jar clojure executable-jar

我想创建一个用 java 和 clojure 实现的 jar 文件来执行。这就是我采取的步骤。

让我的java代码调用clojure代码

我可以生成一个包含 clojure 核心和我的 clojure 代码的 jar 文件 (ThingOne-1.0.0-SNAPSHOT-standalone.jar),并且我还可以获得一个使用 clojure 代码的类文件 (HelloJava.class)通过关注此站点获取 jar 文件 - http://walkwithoutrhythm.net/blog/2012/03/26/how-to-call-clojure-1-dot-3-functions-from-java/

java代码如下:clojure代码导入为ThingOne

import ThingOne.*;

public class HelloJava {
    public static void main(String[] args) {
        System.out.println("Hello from Java!");
        core.foo (12345);
    }
}

我可以运行此命令来使用代码:

java -cp 'ThingOne-1.0.0-SNAPSHOT-standalone.jar:.' HelloJava

制作一个 jar 文件

我创建了一个具有这种结构的 jar 目录。

├── MANIFEST.MF
└── jar
    └── ThingOne-1.0.0-SNAPSHOT-standalone.jar

MANIFEST.MF的内容是

Manifest-Version: 0.1
Main-Class: HelloJava
Class-Path: jar/ThingOne-1.0.0-SNAPSHOT-standalone.jar

我可以使用 jar cvfm hello.jar jar/MANIFEST.MF HelloJava.class 获取一个 jar 文件。

但是,clojure jar 文件 (ThingOne-1.0.0-SNAPSHOT-standalone.jar) 不包含在此 jar 文件中,而只是引用。

如何制作一个包含 java 类文件和 clojure jar 文件的 jar 文件?

最佳答案

如果你想制作一个包罗万象的 jar ,请使用以下工具:

如果您特别想要打包 jar 文件,则需要一个自定义类加载器,例如:

也就是说,我会考虑文道的建议,除非你有特定的需求,它无法满足。

关于java - 创建一个用于从 Java/Clojure 执行的 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341993/

相关文章:

java - 从 jar 文件复制目录

java - 使用类添加 View 的预期类或包

java - 使用 NSIS 在 64 位服务器上运行 32 位 java keytool

java - 我们添加到 Java 类以抑制文件长度的 "CHECKSTYLE"注释是什么?

java - 查询语法异常 : Path expected for join

swift - 以编程方式连接到 VPN 不断要求提供系统钥匙串(keychain)凭据

linux - 递归获取它们所在的所有文件和目录

linux - 在 Unix/macOS 系统事件上触发脚本

java - 如何获取正在运行的JAR文件的路径?

android - 如何在 Android 中添加 java.awt.image 包