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

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

让我的java代码调用clojure代码

我可以生成一个jar文件(ThingOne-1.0.0-SNAPSHOT-standalone.jar),它有clojure核心和我的clojure代码,我也可以得到一个使用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 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 Jar Links
> one-JAR™

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

> JarClassLoader

也就是说,我会考虑到道文的建议,除非你有特殊的需要,否则就无法满足.

转载注明原文:创建一个用于从Java / Clojure执行的jar文件 - 代码日志