【问题标题】:Intellij fat one jar artifact does not generate a working outputIntellij fat one jar artifact 不生成工作输出
【发布时间】:2017-12-22 14:50:04
【问题描述】:

Intellij fat one jar 工件不会生成工作输出。下面你可以看到我的设置和项目结构(left)。当我单击 build artifact 然后生成的输出时,什么也没有发生。

【问题讨论】:

  • java -jar …运行时命令行的输出是什么?
  • @CrazyCoder 找不到主类或加载
  • 如果您添加到依赖项的任何 jar 具有自己的 META-INF/Manifest.MF 文件,它将覆盖您指定主类 see here for the solution 的清单。
  • @CrazyCoder,试过了,仍然得到同样的错误“找不到主类或加载”等。请查看编辑后的图片。也许我依赖的一个库是项目库,问题是否与此有关?
  • mssql-jdbc-6.2.0.jre8.jar 具有数字签名(MSFTSIG.RSAMSFTSIG.SF 文件)。重新打包 jar 时,签名会损坏。如果您从 jar 中删除这些文件,它应该可以正常启动。

标签: java intellij-idea build executable-jar


【解决方案1】:

mssql-jdbc-6.2.0.jre8.jar 具有数字签名(MSFTSIG.RSAMSFTSIG.SF 文件)。重新打包 jar 时,签名会损坏。如果您从 jar(原始文件或工件)中删除这些文件,它应该可以正常启动。

Vote for this issue 以便在未来的更新中解决它。

【讨论】:

  • 感谢您的时间和精力。最后一个问题..我应该从输出 jar 还是从 lib 的文件夹中删除它? (在罐子里找不到)
  • 如果你从工件中删除它,你每次重建jar时都必须这样做,所以remove it from the lib instead有意义。
  • @CrazyCoder 如何找到导致问题的 jar?
  • @KostasC 解压jar,看看里面是否有*.SF/*.RSA文件。
  • 感谢 CrazyCoder。我花了一段时间才找到这个问题,但它给了我一个很好的指导。在我的情况下,有问题的文件是 lorg.conscript:conscrypt-openjdk-uber: 2.5.1 包含 RSA。删除允许应用程序运行。我现在必须通过删除这个库 jar 文件来找出我可能破坏了什么。
猜你喜欢
  • 2021-12-09
  • 2019-06-28
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多