我想创建一个用 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/