生成的JAR文件 - 发生了JNI错误

时间:2018-05-04 10:34:32

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

我正在使用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)

1 个答案:

答案 0 :(得分:1)

我调查了你得到的例外:Invalid signature file digest for Manifest main attributes

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

以下是遇到此例外的问题列表:

按照上面的链接找到可以帮到您的确切解决方案。解决方案取决于您正在进行的操作,部署方式(具体说明如何创建jar工件)。