java打jar包的异常一:could not find the main class,java.lang.UnsupportedClassVersionError: Bad version numb。
原因:jdk版本冲突问题
参考文章:
http://jn3.141592654.blog.163.com/blog/static/27477260201031285943166/?hasChannelAdminPriv=true
一段在jcreator中能正常运行的代码,在myeclipse中
老是出现could not find the main class,program will exit。
这足可以说明代码没错,是程序的问题了。
原因和解决办法如下:
因为我们使用高版本的JDK编译的Java class 文件试图在较低版本的JVM上运行,所报的错误。 因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这 个.class文件,会抛出Couldnot find the main class.program will exit不支持的Class版本错误。 这个错误尤其在JDK5与JDK5之前的版本上表现明显。因为,JDK5在Java语法上作了不少增强,引入了一 些新的.class文件的元素,导致旧版本的JVM无法解释、执行.class文件。即使这个类并没有使用任何JDK5的新元素,但是JDK5生成 的.class文件,JDK1.4及其以前的JVM都无法辨认。
解决方法:
1. 弄清楚该程序是在哪个JDK版本下开发的 (JDK对于java学习者应该不能陌生)
2. 在myEclipse菜单->Windows->Proferences->java->Installs Jres重新设置JDK路径,改为开发程序时的JDK版本(如上图)(我做到这一步就可以了!我的eclipse是7.0,jdk是6u13的。)
3.Windows->Proferences->java->Compiler,将compilercompliance level设置为与上面相同的JDK(如上图,如果你今天2011年到官方下载的JDK那可能是1.6的了,建议勾选1.6)
-----------------------------------------------------------------------------
对于项目来说,有时候出现版本问题也是跟编译级别有关系,那修改一下就可以了(如下图)
解决这个
方法二:换包,把相应项目不同版本的包换了,如我的项目本来是jdk1.5版本的,现在考到了jdk1.6版本的工具里,
那么在项目名称处单击右键-——>“properties“ 把1.6的包remove。
(2)添加jdk1.5的包,单击add library。