2017-08-29 68 views
-1

, 我使用Intellij自5天以来,它看起来不错。所以我创建了一个新的java项目,并使用log4j2,轻松的业务,一切正常。然后我创建了一个易于部署的工件。问题是,我无法运行/执行工件JAR文件!我得到的错误,taht log4j.xml文件丢失:Intellij的工件和log4j - 如何运行

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager 
     at iBox.IBox.<init>(IBox.java:64) 
     at iboxapp.Start.main(Start.java:28) 
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager 
     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) 

的log4j.xml是神器(JAR文件)的一部分。 xml文件的正确位置在哪里?我不使用Maven,Intellij 2017.2

任何想法?

THX

+0

这是一个依赖关系问题,你不使用maven你使用什么? –

+0

我只使用IntelliJ,添加依赖关系并手动构建工件。我不知道默认情况下在后台运行的是什么。 – Sascha

+0

[意外的异常:java.lang.NoClassDefFoundError:org/apache/log4j/LogManager]可能的重复(https://stackoverflow.com/questions/26338387/unexpected-exception-java-lang-noclassdeffounderror-org-apache-log4j -logmanage) – Meo

回答

0

首先你应该使用的,而不是依靠IDE正确的构建系统。如果你从头开始,我推荐gradle。

现在这是说: 错误不会抱怨缺少XML文件,但关于丢失的类文件。

你是如何创造神器的? 为了测试我只是

  • 在IDEA中创建一个Java项目
  • 添加库依赖关系的log4j的API和log4j的核心,版本2.8.2
  • 补充说,仅使用记录单线主类log4j的
  • 加入的log4j .XML的 “SRC” 文件夹的根
  • 创建伪影:
    • 个项目设置 - >工件 - > “+” - >罐 - >从具有依赖性模块
    • 选择的主类
    • 并保持的 “从库JAR文件” - >提取到目标JAR”选择
  • 建立伪影:体形 - >构建构件
  • 使用“Java的罐子测试伪影”执行工件从出/伪影/测试工件夹

作品没有问题。

0

这个问题是旧的和新的log4j引用的混合。清理后,一切正常。 THX