在使用Eclipse进行J2EE项目开发的时候,尤其是接手一个古董项目这种情况,经常会因为JDK版本不匹配导致出现很多奇奇怪怪的错误,轻则编辑页面报小红叉,重则编译通不过JAVA容器报500错误。这里简单记一下Eclipse几个可以修改JDK版本的地方,防止由于JDK版本问题导致开发环境搭建出错浪费开发人员的时间。

一、工作区的全局编译JDK版本

Window-Preferences


这里设置的是工作区使用的jdk版本,如果这里设置的不匹配,可能在import的时候就会出错

这里设置完毕之后点击Apply就会生效并自动把整个WorkSpace重新build一遍


二、单个Project的编译版本

同上面全局的配置相似,用于配置某个工程自己的版本,默认与全局一致


同样点击Apply会把该项目重新Build一遍

如果点击上面的‘Installed JREs’那么就可以打开JDK配置页面,可以从oracle官网下载相应的jdk并配置路径。


三、某个Project的JDK依赖

一般来说,依赖库选择不对那么就会经常在import的时候就报错,或者某些类的方法调用时显示不存在

在某个项目上右击,选择Properties


比如当前项目是按照JDK1.5编写的,然而当前工作区使用的是JDK1.8,就经常会碰到java.lang.ClassNotFoundException: sun.io.ByteToCharConverter这个报错,此时只需把JDK依赖改成JDK1.5即可。这样主要是处理了一些在新版JDK中被去掉的过期类。


四、Ant编译时JDK版本


在使用Ant进行build前同样可以设置编译器的版本,我在使用JDK1.5编译JDK1.5开发的项目的时候经常编译失败,换成1.8就可以了(估计是MyEclipse版本太新的问题,我用的是MyEclipse2015,会报找不到Main Class的错误)。但是换成JDK1.8又会碰到过期类的问题,所以最后是用JDK1.6解决的


上图是在新版Eclipse使用JDK1.5编译J2EE5会报的错,实际上是有主类的



五、JAVA容器的运行JDK版本

我在使用JBoss1.6和JDK1.8运行一个struts2项目的时候,出现了所有jsp页面都打不开的情况。html页面和静态资源以及Action类都没有问题,后来换成JDK1.6就好了。所以说除了项目编译时的版本外,容器运行的的环境也需要考虑好。


上图是让JBoss6 使用JDK1.8的情况下打不开所有JSP页面时的报错,换成JDK1.6就可以了






Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐