创建一个用于从Java / Clojure执行的jar文件 [英] Creating one jar file that for execution from Java/Clojure

查看:251
本文介绍了创建一个用于从Java / Clojure执行的jar文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆