【问题标题】:Generated JAR file - JNI error has occurred生成的 JAR 文件 - 发生 JNI 错误
【发布时间】:2018-10-14 19:41:31
【问题描述】:

我正在使用 IntelliJ IDEA 从 LeanFT 项目创建 jar 工件。

jar 工件已生成,但出现以下错误消息:

发生JNI错误,请检查您的安装并重试

尝试直接执行 jar 文件时。

当我使用 IDE 执行时,它正在工作。不需要任何参数或参数值。当我从一个简单的“Hello World”生成一个 jar 文件时,我遇到了同样的错误。

堆栈跟踪:

Error: A JNI error has occurred, please check your installation and try again 
   Exception in thread "main" java.lang.SecurityException:
   Invalid signature file digest for Manifest main attributes
        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)

【问题讨论】:

  • 需要很多信息来帮助你,伙计。你是否使用 Maven 来创建你的 Jar 工件,如果是,你是如何配置你的 pom.xml 关于这个包装/插入?另外,你真的在​​你的项目中使用 JNI 吗?
  • 我是从具有依赖关系的模块构建的,不要使用 Maven。不,我不使用 JNI。

标签: java intellij-idea jar java-native-interface


【解决方案1】:

这可能与您 PC 上安装的 java 版本有关。检查它是否与用于编译代码的 java 版本相同。

【讨论】:

    【解决方案2】:

    我查看了您遇到的异常:Invalid signature file digest for Manifest main attributes

    您是否使用签名的 jar 文件作为项目的依赖项?如果是这样,当您生成一个包含依赖项的 jar 时,请尝试执行它 - JVM 会将您生成的 jar 检测为对您正在使用的签名 jar 的操作。

    以下是遇到此异常的问题列表:

    按照上面的链接,找到对您有帮助的确切解决方案。解决方案取决于您正在做什么,部署方式(具体如何创建 jar 工件)。

    【讨论】:

    • 是的,我使用 jar 文件作为 MVNRepository 的依赖项。
    • @plaidshirt :跟进你。您如何处理您的问题?
    • 我不确定,如何解决这个问题,因为我不使用 Maven 并且不确定如何修改下载的 jar 文件以使其未签名。
    • @plaidshirt :这个想法不是修改签名的 jar,而是确保您生成的 jar 已将签名的 jar 考虑在内并进行了相应的签名。
    • 我看到了,但是找不到任何关于生成签名 jar 文件的文章。
    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 2018-05-26
    • 1970-01-01
    • 2018-12-16
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多