【问题标题】:Issues with jar creation using ant build file使用 ant 构建文件创建 jar 的问题
【发布时间】:2013-06-23 10:38:38
【问题描述】:

在我的工作地点,我有一个 Eclipse Java 项目,该项目将使用 build.xml 文件导出为 JAR。

jar被成功写入硬盘,但是我发现为了让它工作,我必须将jar的所有内容解压到jar所在的文件夹,然后双击它让它运行。

例如:

Jar 的位置:C:\MyTestFolder\App.jar

我必须将所有内容解压缩到 C:\MyTestFolder,然后双击 JAR 以使其成功运行。

否则,直接双击jar,什么都不会发生。

当我从命令提示符调用 jar 时,我收到以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/log4j/Logger


        at application.MainView.<init>(MainView.java:49)
        at application.MainView$1.run(MainView.java:65)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 14 more

尽管类路径上有 log4j(在 MANIFEST.MF 文件中),但仍存在此错误。 我想了解相同的解决方案。 提前致谢。

【问题讨论】:

  • 看起来 log4j.jar 不是你的类路径
  • @sidshu 已经是了。
  • manifest 文件中已经提到它可以工作

标签: java eclipse ant build jar


【解决方案1】:

看起来 jar 无法在类路径中找到依赖的 jar。

需要在主jar的Manifest文件中添加所有依赖jar文件的路径。

之后,您将能够在不提取内容的情况下运行 jar 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2021-03-20
    • 2011-03-23
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    相关资源
    最近更新 更多