为了测试各种格式的证书读取操作,我写了个很简单的Test类,结果却出现如下错误:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
经检查发现是因为Java Compile Level和指定编译的JRE两者间的版本不一致导致;
比如我Installed JRE里面指定了1.5版本,而再Compile Level中指定了6.0;这类问题一般出现在某些环境需要用到6.0,而有些环境需要5.0,在环境切换时以上两者参数没有一起修改所导致;
解决办法是将两者设置为一样的,并进行重新编译;