• Intellij打包jar文件, 在cmd执行jar文件时 java.lang.SecurityException: no manifest section for signature file entry


    1.泄露一个小程序给老婆用, 封装了一下, 执行的时候报一下错误:

     

     

     

    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.SecurityException: no manifest section for signature file entry org/bouncycastle/jce/provider/JDKMessageDigest$RIPEMD256.class
            at sun.security.util.SignatureFileVerifier.verifySection(Unknown Source)
            at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
            at sun.security.util.SignatureFileVerifier.process(Unknown Source)
            at java.util.jar.JarVerifier.processEntry(Unknown Source)
            at java.util.jar.JarVerifier.update(Unknown Source)
            at java.util.jar.JarFile.initializeVerifier(Unknown Source)
            at java.util.jar.JarFile.getInputStream(Unknown Source)
            at sun.misc.URLClassPath$JarLoader$2.getInputStream(Unknown Source)
            at sun.misc.Resource.cachedInputStream(Unknown Source)
            at sun.misc.Resource.getByteBuffer(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
    请按任意键继续. . .

     

    2.最后删除META-INF文件夹下*.SF,*.DSA 文件解决了  (压缩软件打开jar)

     

     3.最后一劳永逸的解决, 在pom文件里面加上如下插件

     

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <filters>
                        <filter>
                            <artifact>*:*</artifact>
                            <excludes>
                                <exclude>META-INF/*.SF</exclude>
                                <exclude>META-INF/*.DSA</exclude>
                                <exclude>META-INF/*.RSA</exclude>
                            </excludes>
                        </filter>
                    </filters>
    
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>com.empress.replication.main.Main</mainClass>
                        </transformer>
                        <!-- <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                             <resource>META-INF/spring.handlers</resource>
                         </transformer>
                         <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                             <resource>META-INF/spring.schemas</resource>
                         </transformer>-->
                    </transformers>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

      

     

    参考资料 : 

      1.Intellij打包jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attrib

        https://blog.csdn.net/qq_25925973/article/details/53370501

       2.maven生成可执行jar文件,排除其他jar中的SF,DSA,RSA等文件

         https://blog.csdn.net/tian_shi_hei_de/article/details/78490392

     

  • 相关阅读:
    通过docker-composer启动容器nginx,并完成spring.boot的web站点端口转发
    手写redis的docker文件,通过docker-compose配置redis
    基于Docker Compose搭建mysql主从复制(1主2从)
    ubuntu 14.04 挂载window共享目录
    asp.net mvc,基于aop实现的接口访问统计、接口缓存等
    自定义属性Attribute的运用
    表值参数的使用
    js的title提示
    Android之ViewPager中包含ViewFlipper时实现双滑动嵌套解决父控件干扰问题
    Android之ViewFlipper实现手动+自动切换图片(附加动画效果)
  • 原文地址:https://www.cnblogs.com/jiuya/p/11887499.html
Copyright © 2020-2023  润新知