我遇到了类似于 Invalid signature file digest for Manifest main attributes exception while trying to run jar file 的问题但无法使用 build.sbt 并从 IntelliJ 2018.1 构建工件来进行此修复或许多其他修复
该项目在 IntelliJ 中作为 scala>sbt 项目启动 Java版本为1.8.0_77
我的 build.sbt 包含:
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.0",
"org.scalatest" %% "scalatest" % "3.0.5" % "test",
"org.apache.spark" % "spark-core_2.11" % "2.3.0",
"org.apache.spark" % "spark-sql_2.11" % "2.3.0",
"com.amazonaws" % "aws-java-sdk" % "1.7.4",
"org.apache.hadoop" % "hadoop-aws" % "2.7.1"
)
excludeFilter in Compile := "*.SF" || "*.DSA" || "*.RSA"
该项目构建时没有任何错误,并且在 IntelliJ 中运行良好,但是当我构建>构建工件并在运行 IntelliJ 的同一台计算机上从命令行运行生成的 jar 时:
java -jar myApp.jar
我得到:
线程“main”中出现异常 java.lang.SecurityException:Manifest 主要属性的签名文件摘要无效
最佳答案
这并没有解决如何从 IntelliJ 中排除的问题,但这将从 jar 中删除文件。
zip -d <jar file name>.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF
关于java - 在 IntelliJ 中使用 build.sbt 排除 JAR 文件中的依赖项签名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49984463/