【问题标题】:JAR Dependency compiles into JAR but does not workJAR Dependency 编译成 JAR 但不起作用
【发布时间】:2016-08-25 00:06:29
【问题描述】:

我一直在谷歌上搜索这个,这似乎很容易,但它对我不起作用。 我想在 IntelliJ IDEA 的 JAR 中包含 Twitter4j。我已将 twitter4j JAR 放入我的 /lib 文件夹,在库中指定它, 指定它在依赖项中编译: Dependencies 并指定将其包含在工件中。

在最终的 JAR 中,同时包含 twitter4j-stream 和 twitter4j-core: Final JAR

不过,Java 在运行时会抛出 NoClassDefFoundError

(这不是 Maven。)

【问题讨论】:

  • @Harmelodic 绝对不是那个的副本。 :D
  • 您只需要检查该类是否存在于最终输出的 jar 中,并且资源(如果它是嵌入的)是否在清单中指定的运行时类路径中。你也可以看看 SBT-Assembly (github.com/sbt/sbt-assembly, stackoverflow.com/questions/23070469/…)。
  • @ManoDestra JAR 在我的 JAR 文件中,我刚刚在清单中手动指定了它们,但它仍然会在尝试从 twitter4j 访问类时抛出该错误。
  • 如果您已解决问题,请将其添加为答案。不要将您的答案放在问题中,因为这样会更难找到实际答案。

标签: java intellij-idea jar


【解决方案1】:

问题作者给出的答案:

在 Artifacts 中,您必须选择“Extracted *.jar”而不是 图书馆。

【讨论】:

    【解决方案2】:

    我有类似的错误,问题是我没有在命令行中正确编写标题:java title。确保您的标题与打包前写入程序中的程序名称相同。

    public class title 中,标题必须等于程序名称以及 jar 存档的名称。

    (很明显,在解压JAR文件之前,您不能将JAR文件中插入的数据文件与CLASS文件一起使用......)

    【讨论】:

      猜你喜欢
      • 2021-03-19
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      相关资源
      最近更新 更多