【问题标题】:Class-Path ignored when running jar运行 jar 时忽略 Class-Path
【发布时间】:2020-01-30 10:09:00
【问题描述】:

我的应用程序 jar 中的 MANIFEST.MF 包含以下行:

Class-Path: other.jar

我的目录在同一级别包含以下文件:

- myApp.jar
- other.jar

我使用

运行我的应用程序
java -jar myApp.jar

并为 other.jar 中的类获取 NoClassDefFoundError

请问我错过了什么?

【问题讨论】:

  • 你试过这篇文章了吗 --> stackoverflow.com/questions/18413014/…
  • 我没有将 jar 和 cp 指定为命令行参数。如果有什么我正在使用该帖子中的答案。我在 manifest.mf 中声明的 jar 被忽略。
  • 你能尝试在 manifest.mf 中给出 jar 的绝对路径吗?
  • 绝对路径仍然会出现同样的错误(并且不能使用绝对路径作为最终解决方案,因为这需要在多个环境中工作)

标签: java jar manifest manifest.mf


【解决方案1】:

原来问题出在清单文件之外。我旁边有一个自动生成的 index.list 文件,它阻止读取类路径。

【讨论】:

  • Index.list 只有在 inside myApp.jar 并且 错误 时才是问题。
  • 它是使用 maven 程序集插件自动生成的,因此它始终存在并且不符合我的需求。
【解决方案2】:

您的 Class-Path 是 Manifest 文件中的最后一行吗?那么它的末尾应该有一个额外的行。如果最后没有回车,它可能不会读取类路径。

【讨论】:

  • 末尾有新行
猜你喜欢
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 2015-03-03
  • 2014-12-25
  • 2018-04-01
  • 2011-10-20
  • 2010-11-14
相关资源
最近更新 更多