创建一个用于从Java / Clojure执行的jar文件 [英] Creating one jar file that for execution from Java/Clojure
问题描述
我想创建一个jar文件来执行,这是用java和clojure实现的。这是我采取的步骤。
让我的java代码调用clojure代码
文件(ThingOne-1.0.0-SNAPSHOT-standalone.jar),它有clojure核心和我的clojure代码,我也可以得到一个类文件(HelloJava.class)使用clojure代码在jar文件通过跟随这个网站 - http: //walkwithouthrhythm.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);
}
}
我可以运行此命令使用代码: / p>
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
主类:HelloJava
类路径:jar / ThingOne- 1.0.0-SNAPSHOT- jar
我可以得到一个jar文件 jar cvfm hello.jar jar /但是,clojure jar文件(ThingOne-1.0.0-SNAPSHOT-standalone.jar)不是一个可执行文件
如何创建一个包含java类文件和clojure jar文件的jar文件?
如果要创建一个包容性的jar,请使用以下工具:
- Jar Jar链接
- < a href =http://one-jar.sourceforge.net/ =nofollow> one-JAR™
如果您特意要打包jar文件,您需要一个自定义类加载器,例如:
也就是说,我会考虑道文的建议,除非你有特定的需求,它不能满足。
I'd like to create one jar file to execute that is implemented with java and clojure. This is the step that I took.
Making my java code call clojure code
I could generate a jar file (ThingOne-1.0.0-SNAPSHOT-standalone.jar) that has clojure core and my clojure code, and I also could get a class file (HelloJava.class) that uses the clojure code in the jar file by following this site - http://walkwithoutrhythm.net/blog/2012/03/26/how-to-call-clojure-1-dot-3-functions-from-java/
The java code is as follows: clojure code is imported as ThingOne
import ThingOne.*;
public class HelloJava {
public static void main(String[] args) {
System.out.println("Hello from Java!");
core.foo (12345);
}
}
I can run this command to use the code:
java -cp 'ThingOne-1.0.0-SNAPSHOT-standalone.jar:.' HelloJava
Making one jar file
I made one jar directory that has this structure.
├── MANIFEST.MF
└── jar
└── ThingOne-1.0.0-SNAPSHOT-standalone.jar
The content of MANIFEST.MF is
Manifest-Version: 0.1
Main-Class: HelloJava
Class-Path: jar/ThingOne-1.0.0-SNAPSHOT-standalone.jar
I could get one jar file with jar cvfm hello.jar jar/MANIFEST.MF HelloJava.class
.
However, the clojure jar file (ThingOne-1.0.0-SNAPSHOT-standalone.jar) is not included in this jar file, but just referenced.
How can I make one jar file that contains the java class file and clojure jar file?
If you want to make an all-inclusive jar, use tools like:
If you specifically want to package jar files, you need a custom classloader, like:
That said, I'd consider Dao Wen's suggestion, unless you have a specific need it cannot meet.
这篇关于创建一个用于从Java / Clojure执行的jar文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!