今天遇到一个问题:线上的项目有个class修改了一下,但是启动tomcat却报错 :HTTP Status 503 - This application is not currently available
查找问题发现是jdk版本不一致导致的,线上的class 的jdk版本为1.5,但是我本地编译的为1.7,所以报错了;
解决:
本地用jdk1.5编译但是我想先确定是不是为1.5版本的,免得重复工作,就用NotePad++ 来看编译后的jdk版本是不是1.5
1.如果你的notepad++ 没有安装HEX-Editor的话 ,那就跟着下面的步骤:
插件 -> Plugin Manager -> Show Plulgin Manager
弹出下面的窗口 Avaliable下面 找到HEX-Editor 点击install就可以 (解释:我本地因为已经安装了所以就直接在Installed里面了)
我们打开class文件 如下图,点击HEX-Editor -> View in HEX
OK!这就是最后的结果图
只看第一行数据,前面8个字节CA FE BA BE 是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节00 31 是jdk的版本号,如我这里就是jdk1.5 的就是我们线上环境所需要的
注意:附上jdk版本对应表格:
版本号 | 对应的十进制 | jdk版本号 |
2E | 46 | jdk1.2 |
2F | 47 | jdk1.3 |
30 | 48 | jdk1.4 |
31 | 49 | jdk1.5 |
32 | 50 | jdk1.6 |
33 | 52 | jdk1.7 |
34 | 53 | jdk1.8 |
OK !完事儿!