将我的程序作为来自 IntelliJ 的 JAR 运行时发生 JNI 错误

问题描述

我的代码在 IntelliJ 中编译和运行没有问题。但是,当我尝试将程序构建为 JAR 并在 cmd 中运行时,出现以下错误

Error: A JNI error has occurred,please check your installation and
try again Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/log4j/Layout
        at java.lang.class.getDeclaredMethods0(Native Method)
        at java.lang.class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.class.privategetmethodRecursive(Class.java:3048)
        at java.lang.class.getmethod0(Class.java:3018)
        at java.lang.class.getmethod(Class.java:1784)
        at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:650)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:632)
Caused by: java.lang.classNotFoundException: org.apache.log4j.Layout
        at java.net.urlclassloader.findClass(urlclassloader.java:382)
        at java.lang.classLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.classLoader.loadClass(ClassLoader.java:351)
        ... 7 more

我相信我正确地创建了 JAR。这是我捆绑的库。

enter image description here

我通过向工件选项卡添加一个空的 JAR,然后手动添加 meta-inf、库和代码来创建 JAR。

enter image description here

如您所见,lib 包含在其中具有 log4j 和 apache commons。

请注意,此问题仅在从 IntelliJ 创建 JAR 时才会出现。如果我通过 eclipse 创建一个 JAR,JAR 工作得很好,但那是不可行的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)