今天写了在IDEA上写了一个spark程序,用的spark2.3.0,打成maven包后,把jar包扔到集群上运行时,发现报错,具体错误如下:
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:284)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:238)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:316)
at java.util.jar.JarVerifier.update(JarVerifier.java:228)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
at java.util.jar.JarFile.getInputStream(JarFile.java:450)
at sun.misc.JarIndex.getJarIndex(JarIndex.java:137)
at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:839)
其实是因为jar包里面有一些文件造成的,
这时候我们只需要用过360压缩工具打开jar包,然后把META-INF目录下的*.SF,*.DSA,*.RSA文件删除,即可。
可以能是有些包有签名,导致错误。