【问题标题】:Compile JAR with manifest inside JAR?用 JAR 中的清单编译 JAR?
【发布时间】:2017-03-11 19:32:03
【问题描述】:

使用 IntelliJ IDEA;

我将如何使 JAR 可以在任何地方运行而无需 META INF? (或者 Meta INF 在 JAR 中??)。

目前,我将 JAR 放到我的 VPS 上,但它没有 METAINF。

谢谢,

【问题讨论】:

  • 为什么需要在没有清单的情况下运行 JAR? JVM 知道要调用哪个主类的唯一方法是使用 mainfest。
  • 试过做研究吗?我不知道你在问什么。当然,您可以创建没有清单信息的 jar 文件。但这并没有太大变化,因为你不能再做“java -jar jarfile”了。
  • @GhostCat 我有。 Alvin,我不知道如何用清单编译它。
  • 哦,也许你应该改写你的问题,“不需要 META INF”位让我感到困惑。反正你是用IntelliJ自带的常规神器系统编译吗?
  • @AlvinL-B 是的。我正要尝试将 meta inf 编译输出添加到 jar 中。

标签: java intellij-idea compilation


【解决方案1】:

在 IntelliJ 中创建工件时,只需选择您的 Main Class,清单就会自动生成。

【讨论】:

  • 下一个问题是:“为什么我的可执行 JAR 没有找到我所有的依赖项?”提示:使用 Maven 管理它们并使用插件将它们放入 JAR 中。
  • @duffymo 通过 IntelliJ 进行手动依赖管理并不像您想象的那么糟糕。对于初学者来说,依赖管理非常干净且易于理解,而且在我看来,通过 IntelliJ 着色更容易。虽然您是对的,但由于 IntelliJ 的 maven 集成非常好,确实没有太多理由不使用它。
  • 别误会 - 我喜欢 IntelliJ。我已经使用它 12 年了,而且还在不断增加。我同意你的建议。我担心 JAR 在 IntelliJ 之外打包、部署和运行时的情况。值得庆幸的是,正如您所说,IntelliJ 的 Maven 支持非常出色。
猜你喜欢
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 2014-01-14
  • 2013-08-25
  • 2016-05-30
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多