【问题标题】:Error: noclassdeffounderror in jar execution错误:jar 执行中的 noclassdeffounderror
【发布时间】:2012-12-20 21:45:27
【问题描述】:

我正在为一些东西使用 swing 和 spring 创建一个桌面应用程序。一切都很顺利,但是当我使用 eclipse JUNO 创建 jar 时,尝试在 cmd 上将其作为 java -jar myjar.jar 运行时出现此错误。不知道问题出在哪里,求大神帮忙?

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
        at efact.alfa1lab.nazca.jframe.NazcaLogin.<init>(NazcaLogin.java:145)
        at efact.alfa1lab.nazca.jframe.NazcaLogin$1.run(NazcaLogin.java:97)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
        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)
        ... 16 more

这是我的文件夹结构

 - myclasses
 - images
 - lib
 - META-INF
 + MANIFEST.MF
   - applicationContext.xml
 - build.xml

这是我的 MANIFEST.MF 与所有弹簧罐,包括:spring-context-support-3.2.0.M1.jarspring-context -3.2.0.M1.jar

Manifest-Version: 1.0
Class-Path: lib/swingx-1.6.1.jar lib/spring-aop-3.2.0.M1.jar lib/spring-context-support-3.2.0.M1.jar lib/spring-context-3.2.0.M1.jar
  lib/javadbf-0.4.0.jar lib/log4j-1.2.16.jar lib/spring-asm-3.2.0.M1.jar lib/spring-beans-3.2.0.M1.jar  
  lib/spring-core-3.2.0.M1.jar lib/spring-expression-3.2.0.M1.jar lib/spring-orm-3.2.0.M1.jar
  lib/spring-oxm-3.2.0.M1.jar lib/spring-test-3.2.0.M1.jar lib/spring-tx-3.2.0.M1.jar lib/spring-web-3.2.0.M1.jar
  lib/spring-webmvc-3.0.5.RELEASE.jar lib/spring-webmvc-3.2.0.M1.jar lib/spring-ws-1.5.9-all.jar lib/troughoasis.jar 
  lib/commons-lang-2.3.jar lib/commons-logging-1.1.1.jar lib/concar.jar lib/ini4j-0.5.2-SNAPSHOT.jar
Main-Class: com.mycompany.MainClass

【问题讨论】:

    标签: spring jar manifest executable-jar


    【解决方案1】:

    MANIFEST.MF 中的 Class-Path 指令无法按预期工作。我建议您结合使用One-JAR 与 Ant 或 Maven 将您的应用程序及其所有依赖项打包到一个 JAR 中。天知道我一直在使用这种方法多久 - 完美无瑕。

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多