eclipse中的JDK与JRE的版本问题

其实写这篇文章是因为刚开始在Eclipse中用maven时,被各种jre、jdk搞得混乱,于是决定弄清楚。先简单的介绍一下:

Eclipse:是一款集成开发的IDE,可以开发,编译,调试,运行代码等;

JDK:java开发工具,用来将.java文件编译成字节码文件;

JRE:java运行时环境,执行编译后得字节码文件;

Maven:一款项目管理工具;

Eclipse中其实内嵌了Java编译器,其编译器的作用等同于jdk中的javac,所以eclipse其实只需要jre就可以编译java文件(在eclipse中当你保存一个java类时,它就会自动编译这个java类,相当于在命令行中用了javac这个命令)。但如果你在eclipse中用了maven这样的工具,可能就无法编译了。因为maven默认使用javac来编译项目的,也就是需要jdk,而如果你的eclipse中某maven项目只指定了jre,就会出现无法编译的情况。就像是启动Tomcat只需要jre,原因是Tomcat中已经包括了源代码编译器,不需要jdk中的javac来编译。

Eclipse中有几处会用到jdk和jre的,下面列出几个,也是我混乱之处所在:

A. Window->preferences->Java->Installed JREs

这里Installed JREs中的可以理解为“全局常量”,这里设置好,之后新建的项目都默认用这里选定的jre或者jdk,但如果项目中用了maven的话,前面说了maven默认的是jdk中的javac来编译,所以如果这里还是用jre的话就会maven install出错,需要选择jdk才行。更改直接Add->Standard VM,点击directory,选择相应的jdk或者jre路径确定即可。

B.给不同的项目选择不同的jre

右击项目名称->build path->configure build path,选择libraries选项卡,选中jre:

点击edit:

可根据不同的需求选择不同的选项卡,并按照提示完成操作即可。注意,当你选择第二个选项卡“替代JRE”时,eclipse会跳转至installed jre中让你选择,因此,需要你提前在installed jre中配置好。

C. Window ->preferences->java->compiler


这里也会有一个jdk的选择,就是编译时jdk的版本,需要注意的一点是:

编译时的jdk版本不能高于项目build path中的jdk即运行时jdk,因为高版本中的有些功能在低版本中并不提供。例如,项目中用了泛型,编译时为jdk1.5但运行时为jdk1.4,虽然编译时不报错,但运行时就会出错,因为jdk1.4并不支持泛型;反过来,编译时为jdk1.4而运行时为jdk1.5,虽然编译时报错,但却可以正确运行。

猜你喜欢

转载自blog.csdn.net/weixin_41963069/article/details/80692718