栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Exception in thread “AWT-EventQueue-0“ java.lang.NoClassDefFoundError问题解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Exception in thread “AWT-EventQueue-0“ java.lang.NoClassDefFoundError问题解决

场景复现

采用Maven构建非Spring项目,在开发阶段能够正常开发(采用IDEA直接run,是可以运行的),通过maven打包后,通过java -jar 运行项目报错:Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError, 查看网上各种办法不得行,后面捣鼓半天明白原来是在打包时候出现的问题。

问题描述
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
        at gui.MainGUI.(MainGUI.java:19)
        at Application$1.run(Application.java:15)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
问题原因

在某些第三发包的引入下,采用以下maven构建时会将第三方jar忽略掉,也就是没有进行打包,导致项目无法运行

原来打包的maven文件为:

...
...
...

    
        
            
                org.apache.maven.plugins
                maven-jar-plugin
                2.4
                
                    
                        
                            true
                            Application
                            
                        
                    
                
            
        
    


解决方式

采用将依赖jar打包到项目中,修改maven文件
pom.xml

...
...
    
        
            
                org.apache.maven.plugins
                maven-assembly-plugin
                2.5.5
                
                    
                        
                            Application
                        
                    
                    
                        jar-with-dependencies
                    
                
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            
        
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685737.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号