3 jre peizhi
来源:互联网 发布:千度云秒赞源码 编辑:程序博客网 时间:2024/06/07 10:18
这么说吧。。我的理解是这样的
build path 是运行时环境
compiler 是编译时环境
假设,你的代码用到泛型,biuld path环境为1.5,compiler 环境为1.4
那么会显示编译错误,无法编译
但是这样的web项目是可以在web容器中运行的(前提是你的容易支持1.5语法)
坚哥威武
eclipse中新建Java工程的三个JRE选项区别
转载:http://blog.csdn.net/wdjhzw/article/details/42086615
本文的主角就是这个十分令人纠结地方,至少令我这个初学者十分纠结…
先来看看官方的解释(链接)
Use default JRE:When selected, the New Java Project Wizard creates a new Java project which uses the workspace default JRE. The default JRE can be configured on theJava > Installed JREs preference page.The project will also use the default compiler compliance which can be configured on theJava > Compiler preference page.Click on Configure default... to configure the default JRE and compiler compliance.Use project specific JRE:When selected, you can explicitly specify the JRE to be used for the new Java project. The new project will use a compiler compliance which matches the version of the selected JRE.Use an execution environment JRE:When selected, you can specify an execution environment to be used for the new Java project. The new project will use a compiler compliance which fits best the selected execution environment.Execution environments can be configured on the Java > Installed JREs > Execution Environmentspreference page.
其实官方的解释客观来讲应该是解释清楚了的,但是他在解释的同时,又带出了其余的陌生概念,就是这个compiler compliance。那就先把这个compiler compliance的概念搞清楚。
首先,设置他的地方在这里 Java > Compiler
可以看到,设置他的参数描述是 Compiler compliance level,直译是“编译器服从的等级”。其后的下拉菜单可以选择JDK的版本。其实,这个参数是设置你的class的运行等级,即你的程序是以哪种版本的JDK进行编译,所以得到的class至少要在这个版本的JRE上运行才行。
举个例子:
比如你的JDK版本是1.7,默认情况下你的Compiler compliance level应该是1.7,因为JRE本来就是为对应版本的JDK开发的程序所服务的。新的JDK提供了更多的功能,而这些功能都要有对应的JRE(至少是对应的JRE)来提供运行环境。所以你的JDK的版本要大于等于Compiler compliance level的版本才行。
之所以提供了这个参数选项,是考虑到将当前编写的程序放到低版本的JRE环境中运行的这种状况。同时,为了能够顺利保证可以在低版本的JRE上运行,你要时刻保证不能使用高版本的JDK中提供的API,道理显而易见。
最后,你必须安装对应的低版本的JRE来运行这个经过降级编译的程序,否则他提示你安装对应版本的JRE。如图。
compiler compliance介绍完了,下面就来说说建工程时这三个JRE选项具体要怎么对待。
1.先说Use default JRE:
你会注意到,我解释compiler compliance时的最后那张图上,有一个Configure…跳转。
他会跳转到这里 Java > Installed JREs
在这里,你可以配置你电脑中的JRE,只要你想,从1.1到1.7,当然现在最新有1.8,所有版本的JRE你都可以安装,并通过旁边的Add按钮添加到这里。注意这里是JRE,之所以Name中有JDK,是因为这个JRE是JDK附带的,不是独立安装的。JRE可以随便你装多少,但JDK一个就够了。
每个JRE前面都有一个复选框,虽说是复选框,但只能有一个被选中,而被选中的就会作为默认JRE。
所以,Use default JRE的作用,就是在你建立工程时,如果选中,就将这个默认JRE作为你构建用的JRE。就像我最开始的那张图上一样,并给出了提示“currently 'jdk1.7.0_71'”。
2.然后是Use project specific JRE:
其实这个选项跟Use default JRE是互补的。之前说道,你可以安装很多版本的JRE,选择Use default JRE就会指定默认JRE为你构建用的JRE,但如果你想选择其它你所安装的JRE的话,就可以选中这个Use project specific JRE,在其后的下拉菜单中,你就可以选择你想使用的JRE。
同时,compiler compliance也会被设置为对应JRE版本的编译级别。
3.最后是Use an execution environment JRE:
这个选项是最令人纠结的。你点开其后的下拉菜单,会看到这样一幕。
它提供了eclipse支持的所有运行环境选项(只是选项而已)。
按照官方的解释,选中该选项,你的compiler compliance将会被设置为对应你所选的JRE版本。
比如,我电脑上只有JRE1.7,如果我选中Use an execution environment JRE,并选择了“JavaSE-1.6”,那么就会有这样的提示。
即是说,默认的compiler compliance编译级别为1.7,即我的JDK的JRE版本,新的工程将会被指定为1.6的编译级别。
这样看起来好像跟我之前讲的自定义compiler compliance如出一辙,而且好像解决了那个需要对应低版本的JRE的警告问题。
但是,当你建立完工程,会看到Problems视图里有一个警告。
嗯,没错,你仍然需要安装对应版本的JRE才行。
不过,你写个“Hello World!”还是可以运行的。但是最Perfect match的选择是装一个对应版本的JRE,这里的Perfect match,出自这里。
这里就是设置那一堆JRE选项的兼容JRE。如果你安装了多个版本的JRE,在右边的Compatible JREs列表里,会列出左边Execution Environment对应的兼容JRE。
我装过1.7和1.8版本的JDK,自然有对应版本的JRE,高版本兼容低版本,所以所有的列表中都有这两个选项。但对于JavaSE-1.7来说,最Perfect match的当然是对应自己版本的JRE。而且他版本,除非你也安装了对应的JRE,否则找不到那个Perfect match JRE。
同时,如果你想指定Execution Environment中某个JRE的默认兼容JRE,那就在右边的那个JRE前面勾选复选框。
所以,总结一下,就是:
1.如果电脑中只有一个版本的JRE,因为你是初学者,初级开发者,或者你的开发只需用一个版本的JRE,那么你就选Use default JRE:就可以了。因为你的eclipse的启动使用就是这个JRE,它会把这个JRE配置为默认的JRE,而通常情况下这个JRE就是你JDK中的JRE,一切都是这么顺理成章。
2.如果电脑中有多个版本的JRE,就可以使用Use project specific JRE:来选择你想使用JRE。这个时候因为你的JDK和JRE的版本可能不对应了,所以compiler compliance会被调整为你所选的JRE的版本。
3.至于Use an execution environment JRE:这个选项,如果你要选的版本的JRE已经安装了,那么你就可以安心的选择了。否则你一定逃不过这个警告
其实Use project specific JRE:和Use an execution environment JRE:这两个选项都是帮助你选择不同的JRE,前者是让你从已有的JRE中选择,所以你有什么他就给你提供什么,比较靠谱;而后者是让你从他可以提供的JRE中选择,他可以提供什么,你就可以选什么,但选完之后你有没有对应JRE那就是另一回事了。
最后再说一点。我之前装过1.7和1.8版本的JDK,所以有两个版本的JRE。但问题是我用的eclipse最高支持到1.7版本的JRE,所以就算我用1.8的JRE来创建工程,他的compiler compliance也最高能调整到1.7,1.8中的新特性是用不了的。所以1.8就只能卸了,等以后用新的eclipse来支持1.8吧(网上有教程装插件可以支持1.8,不想折腾了:-P)。
»下一篇:使用java代码打开chm格式的帮助文档
公告
园龄:1年8个月
粉丝:1
关注:37
- 3 jre peizhi
- peizhi
- synergy---peizhi
- peizhi eclipse
- ubuntu peizhi android
- java3----java环境---jdk,jre(3)-----jdk和jre的理解3
- [Java开发问题-3] jdk里的jre与外面jre的区别
- Java 2 Standard Edition(J2SE) JDK/JRE 5.0 Update 3
- Java基础3,安装jdk、jre及配置环境变量
- 什么是JRE
- JRE安装
- JRE & JDK
- jre裁剪
- jre瘦身
- jre jdk
- jre 配置
- 查看JRE
- JDK & JRE
- top -m 观察内存变化趋势 嵌入式适用 oom
- git日常基本操作
- 前后端分离springmvc和RESTful理解
- 张量分解-Tucker分解
- 前端chrome浏览器调试总结
- 3 jre peizhi
- 大话设计模式读书笔记之设计原则
- centos7 Supervisor的安装与配置,管理elk进程。
- markdown 收集机(持续更新)
- Semantic Fusion Unit 的tensorflow实现
- JAVA接口回调详解
- 检索索引库(搜索操作)
- 一张图看懂阿里云网络产品[七]共享流量包
- JZOJ 5475. 【NOIP2017提高组正式赛】逛公园
· 江南大学联合开发凯夫拉纳米纤维材质软骨 能像真正的软骨一样
· 空客利用HoloLens培训工程师和乘务员
· 谷歌宣布云平台GPU使用价格降低36%
· 微信“智聆”首次亮相 原来我们使用的一直是它
· 共享单车洗牌 波及“自行车第一镇”
» 更多新闻...
· 关于编程,你的练习是不是有效的?
· 改善程序员生活质量的 3+10 习惯
· NASA的10条代码编写原则
· 为什么你参加了那么多培训,却依然表现平平?