我正在使用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)
答案 0 :(得分:1)
我调查了你得到的例外:Invalid signature file digest for Manifest main attributes
。
您是否使用已签名的jar文件作为项目的依赖项?如果是这样,当你生成一个包含依赖项的jar时,然后尝试执行它--JVM会检测你生成的jar作为你正在使用的签名jar的操作。
以下是遇到此例外的问题列表:
按照上面的链接找到可以帮到您的确切解决方案。解决方案取决于您正在进行的操作,部署方式(具体说明如何创建jar工件)。