【问题标题】:java.lang.SecurityException: no manifiest section for signature file (RSA, SF, DSA files and MANIFEST.MF excluded)java.lang.SecurityException:没有签名文件的清单部分(RSA、SF、DSA 文件和 MANIFEST.MF 除外)
【发布时间】:2017-03-24 12:23:58
【问题描述】:

下面是我的 ant build jar 目标:

<target name="build jar" depends="compile">

        <mkdir dir="${dist.home}" />

        <jar destfile="${dist.home}/${app.name}.jar" basedir="${build.home}/classes">
            <zipgroupfileset dir="${lib.home}" includes="*.jar" excludes="*.RSA, *.SF, *.DSA, META-INF/MANIFEST.MF" />  

            <manifest>
                <attribute name = "Main-Class" value = "com.karthik.publisher"/>
            </manifest>
        </jar>

    </target>

当我从命令提示符运行/执行 jar 时,出现以下错误

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: no manifiest section for signature file entry javax/mail/SecuritySupport.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)

如您所见,我从每个 jar 中排除了 RSA、SF 和 DSA 文件以及 MANIFEST.MF,但我仍然遇到此异常。

【问题讨论】:

  • 解压生成的 JAR 文件并检查它的 META-INF 目录中有哪些文件。
  • 提取 JAR 文件后,我在 META-INF 目录中看到 .RSA、.SF、MANIFEST.MF、mimetype.default、mailcap.default 文件。似乎这些文件没有被排除在 build/jar 中。我怀疑构建 jar 目标有问题。

标签: java ant jar


【解决方案1】:

build jar 任务中的 excludes 定义仅涵盖 jar 文件根目录中的 .RSA .SF 和 .DSA 文件。但是它们位于META-INF 子目录中。

  • *.RSA-> 涵盖要合并的 zip/jar 文件根目录中的 RSA 文件
  • **/*.RSA-> 涵盖要合并的 zip/jar 文件中各处的 RSA 文件
  • META-INF/*.* -> 覆盖 META-INF 目录下的所有文件

我建议您使用第三种选择,因为我没有看到任何 jar 将文件放在合并 jar 的 META-INF 目录中的理由。

【讨论】:

  • 我尝试了第三个选项,但我仍然看到 META-INF 文件夹中存在的所有文件
  • 您是否删除了excludes 字符串中的空格?
  • 我已经删除了空格。我认为问题在于 zipgroupfileset 中的排除项。我已将其更改为 。现在我没有收到安全异常,而是线程“main”中的异常 java.lang.NoClassDefFoundError: javax/jms/JMSException
猜你喜欢
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 2023-03-23
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多