我想创建一个用 java 和 clojure 实现的 jar 文件来执行。这是我采取的步骤。
让我的 java 代码调用 clojure 代码
我可以生成一个具有 clojure 核心和我的 clojure 代码的 jar 文件 (ThingOne-1.0.0-SNAPSHOT-standalone.jar),我还可以获得一个使用 jar 文件中的 clojure 代码的类文件 (HelloJava.class)通过关注这个网站 - 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 文件jar cvfm hello.jar jar/MANIFEST.MF HelloJava.class
。
但是,clojure jar 文件(ThingOne-1.0.0-SNAPSHOT-standalone.jar)没有包含在这个 jar 文件中,只是被引用了。
如何制作一个包含 java 类文件和 clojure jar 文件的 jar 文件?