gpt4 book ai didi

java - 可执行 jar 背后的魔力?

转载 作者:行者123 更新时间:2023-11-29 08:17:33 27 4
gpt4 key购买 nike

Jar 是使用 java 的一种便捷方式,因为每个类都可以包含在一个 jar 中。

我按如下方式使用 antlr,它使用 -jar 选项调用 jar。

java -jar $ANTLRDIR/antlr-3.2.jar ANTLR_CODE.g

而且,这是调用 clojure 的命令。而不是使用 -jar 选项调用 clojure.jar。它在 -cp 中,并调用一些“函数”。

java -cp $CLOJURE_JAR:$CLASSPATH clojure.lang.Script CLOJURE_CODE.clj

问题

  • 这种方法背后的魔力是什么?什么是“clojure.lang.Script”?
  • antlr可以用同样的方式调用吗?如果是这样,应该使用什么名称(类似于 clojure.lang.Script)?
  • 用其他语言制作的 jar 文件怎么样:clojure/scala?我怎么知道应该叫什么名字?
  • 这两种方法有什么区别?优点和缺点?

最佳答案

•这种方法背后的魔力是什么?什么是“clojure.lang.Script”?

clojure.lang.Script 是 jar 可执行文件正在运行的具有主要方法的类。

•antlr可以这样调用吗?如果是这样,应该使用什么名称(类似于 clojure.lang.Script)?

antlr jar可以这样调用。您必须知道主类的名称(在 jar 中的 MANIFEST.MF 文件中。)

•用其他语言制作的jar文件怎么样:clojure/scala?我怎么知道应该叫什么名字?

我不知道...可能取决于语言。

•这两种方法有什么区别?优缺点?

可执行 jar 非常容易让用户启动(尤其是在 Windows 中)。只需双击 jar 文件。

•在这篇文章中,有人告诉我 -jar 会忽略所有 -cp 和 $CLASSPATH。为什么是这样?这有什么原因吗?

毫无疑问,Sun 的人这样做是出于安全原因。

•我还被告知 -cp 选项也忽略了 $CLASSPATH。为什么是这样?这有什么好的理由吗?

-cp 选项覆盖 $CLASSPATH。这就是此选项的全部目的。

关于java - 可执行 jar 背后的魔力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3401239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com