1 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0
52是什麼鬼?參照https://www.cnblogs.com/xing901022/p/4172410.html
得知
JDK不同的版本,編譯出的class文件是不同的。通過查看分析class文件前幾個字節,可以找到對應的關係,詳細的參考官方,細微的版本之間可能有差異:
1 J2SE 7 = 51 (0x33 hex),
2 J2SE 6.0 = 50 (0x32 hex),
3 J2SE 5.0 = 49 (0x31 hex),
4 JDK 1.4 = 48 (0x30 hex),
5 JDK 1.3 = 47 (0x2F hex),
6 JDK 1.2 = 46 (0x2E hex),
7 JDK 1.1 = 45 (0x2D hex).
我的jdk版本是1.7,驅動要求的是52.0對應的 jdk版本
2 碰到如下異常
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165)
at com.msyd.hibernate.App.main(App.java:12)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165)
at com.msyd.hibernate.App.main(App.java:12)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
解決方案,缺jar包:slf4j-api-1.5.8.jar ,slf4j-log4j12.jar
3 使用aspectj加載配置文件出現如下問題:
Loading XML bean definitions from class path resource [aspectj.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [aspectj.xml]; nested exception is java.io.FileNotFoundException: class path resource [aspectj.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.msyd.spring.aop.aspectj.App.main(App.java:8)
Caused by: java.io.FileNotFoundException: class path resource [aspectj.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
... 13 more
解決方案:
之前寫的加載文件ApplicationContext ac = new ClassPathXmlApplicationContext("aspectj.xml");但是它要求必須在類路徑下,但我的配置文件不在,所以改爲
ApplicationContext ac = new ClassPathXmlApplicationContext("aspectj.xml", App.class); 就可以 了,表示和App.class通路徑,加載該xml配置文件。
3 Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
at javassist.CtClassType.getClassFile2(CtClassType.java:204)
at javassist.CtClassType.subtypeOf(CtClassType.java:304)
at javassist.CtClassType.subtypeOf(CtClassType.java:319)
.....................
Caused by: java.io.IOException: invalid constant type: 15
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1113)
at javassist.bytecode.ConstPool.read(ConstPool.java:1056)
at javassist.bytecode.ConstPool.<init>(ConstPool.java:150)
at javassist.bytecode.ClassFile.read(ClassFile.java:765)
at javassist.bytecode.ClassFile.<init>(ClassFile.java:109)
at javassist.CtClassType.getClassFile2(CtClassType.java:191)
... 117 more
原因之一
https://blog.csdn.net/zhoukun1008/article/details/76602577#commentBox
原因之二進一步解決
https://www.cnblogs.com/yinfj/p/7833932.html
原因之三最狗血:
本地jdk版本過高。比如我用1.8,但是不成,改成1.7就ok了。
4 java.util.zip.ZipException:invalid distance distance too far back
java.util.zip.ZipException:invalid distance distance too far back
這個錯誤,對於使用maven的童鞋來說應該是可能會遇到過。。。
這個原因就是maven下載相關jar包時未下載完全,導致服務器進行加載解壓時出錯。
這個就需要查看相關日誌,找到沒有下載完全的包進行手動下載。
5 org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.OutOfMemoryError: PermGen space
原因是 內存不足,需要將ide的內存設置大一點