最近在linux上运行windows上打jar包时报错:Exception in thread "main" java.lang.UnsupportedClassVersionError: wc/WordCountMain : Unsupported major.minor version 52.0 , 截图如下:
经过交流说是自己jdk版本不一样导致报错,因为我windows上是用jdk1.8版本写的,而linux上是jdk1.7,是jdk版本不一样导致的。解决办法一是在windows上下载个jdk1.7,用jdk1.7写Java程序,然后在打jar包再在linux上运行;但我不想在下一个jdk1.7,于是我尝试在ide中将jre改成JavaSE-1.7在打jar包,如下图:
然后再打jar包,再在linux上运行,结果运行成功:
就此exception解决,总结发现linux在编译windows打好的jar包时只对jdk版本号进行识别,那我们就可以在windows上选择对应的jdk版本而不用重新用对应的jdk版本编写代码,这样就会方便很多,但解析jar包时用到的一些东西和运行代码所需的类在两个版本的jdk必须一致,这样才不会报错。
不知道理解的对不对,本人写本文属记录心路历程;由于时间水平有限,有不对的地方希望广大大牛批评指正,谢谢