问题描述
我的代码在 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,然后手动添加 meta-inf、库和代码来创建 JAR。 如您所见,lib 包含在其中具有 log4j 和 apache commons。
请注意,此问题仅在从 IntelliJ 创建 JAR 时才会出现。如果我通过 eclipse 创建一个 JAR,JAR 工作得很好,但那是不可行的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)