如何运行包含 clojure 和 java 代码编译的类文件的 jar 文件。 java文件包含main方法

发布于 2024-12-09 09:28:08 字数 1089 浏览 1 评论 0原文

java -cp clojure.jar clojure.maincompile.clj 这是编译 clojure 代码。 javacCalculateSum.java编译java代码。 jar cvf sum.jar *.class 获取类文件的 jar 文件。

javaCalculateSum 正在运行 main 并正确给出输出。 如何从java环境运行jar文件? 就像java -cp clojure.jar;sum.jar clojure.mainCalculateSum,其中CalculateSum是主类。

示例代码 _utils.clj_

(ns utils
(:gen-class :name 实用工具 :methods [#^{:static true} [sum [java.util.Collection] long]])) (defn sumx [coll] (reduce + coll)) (defn -sum [coll] (sumx coll))

compile.clj

(set! *compile-path* "./") (编译'utils)

CalculateSum.java 公共类计算和{ 公共静态无效主(字符串[] args){ java.util.List; xs = new java.util.ArrayList(); xs.add(10);
xs.add(5); System.out.println(Utils.sum(xs)); } }

目的是从这段代码中创建 jar 文件。并运行jar文件

java应该调用clojure代码,执行它并打印结果

java -cp clojure.jar clojure.main compile.clj this is compiling the clojure code.
javac CalculateSum.java compiling java code.
jar cvf sum.jar *.class getting jar file of class files.

java CalculateSum is running main and giving output correctly.
How to run jar file from java environment?
like java -cp clojure.jar;sum.jar clojure.main CalculateSum where CalculateSum is main class.

sample code
_utils.clj_

(ns utils
(:gen-class :name Utils
:methods [#^{:static true} [sum [java.util.Collection] long]]))
(defn sumx [coll] (reduce + coll))
(defn -sum [coll] (sumx coll))

compile.clj

(set! *compile-path* "./")
(compile 'utils)

CalculateSum.java
public class CalculateSum {
public static void main(String[] args) {
java.util.List<Integer> xs = new java.util.ArrayList<Integer>();
xs.add(10);
xs.add(5);
System.out.println(Utils.sum(xs));
}
}

Aim is to craete jar file out of this code. and run jar file

java should call clojure code, execute it and print result

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青丝拂面 2024-12-16 09:28:08

好的,有两件事:

  • 要从 jar 文件运行它,而不是使其成为可执行的 jar 文件,您应该只需要:

    java -cp sum.jar 计算和
    

    或者可能(如果它在执行时需要closure.jar中的类)

    java -cpclosure.jar;sum.jarCalculateSum
    
  • 将其转换为可以运行的可执行 jar 文件

    java -jar sum.jar
    

    您需要一个 manifest 文件,其中包含 Main -Class 属性允许您设置入口点,并且可能是Class-Path 属性将closure.jar 文件添加到jar 的类路径.

请点击链接了解更多详情。

Okay, so there are two things:

  • To run it just from a jar file rather than making it an executable jar file, you should be fine with just:

    java -cp sum.jar CalculateSum
    

    or possibly (if it needs classes from closure.jar at execution time)

    java -cp closure.jar;sum.jar CalculateSum
    
  • To turn it into an executable jar file which you can run with

    java -jar sum.jar
    

    you'll need a manifest file including a Main-Class attribute letting you set the entry point, and possibly a Class-Path attribute to add the closure.jar file to the jar's classpath.

Follow the links for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文