eclipse中几处的jdk设置以及各自的作用

一:jdk和jre的区别

JDK(java development kit):java开发工具,包含java基础类库,java工具(常用指令,java,javac等),运行时环境(jre),面向于开发人员

JRE(Java Runtime Environment):包含jvm(虚拟机)的实现,java核心类库(rt.jar),面向Java应用程序.

本地安装jdk之后,能看到jdk内部包含jre以及与jdk同级的外部也有jre,那么这两种jre有什么区别呢?
jdk中的jre主要用于开发人员,代码写完了之后测试运行Java程序使用的.外部的jre主要用于运行安装在本地的java程序.两者功能基本相同,只是侧重点不同,jdk内部的jre运行效率更高,外部的jre运行更稳定

总的来说:jvm在jre中,jre在jdk中

二:eclipse上安装的jdk及其作用

1 :首先eclipse是java写的ide工具,它的启动需要jdk(jre),一般会配置环境变量

2: eclipse上设置jre以及编译级别
eclipse上开发一个项目主要有2个地方涉及jdk相关配置:java bulid path中的jre和compiler complience level(编译级别)
jre可以看作运行环境(提供代码中使用的类库),编译级别可以看作编译环境(提供对代码的语法检查)

eclipse编译源代码不是使用javac,有自带的编译器

那么以下组合各有什么结果呢?

  1. jre > compiler
    如果代码中使用了编译器无法识别的语法,或者使用了更高级别jdk的特性
    例如: jdk设置1.5,编译级别设置1.4
    如果在代码中使用泛型,编译器无法识别,编译报错
    如果在代码中使用jdk1.8的特性,类库无法引用,编译器也无法编译
  2. jre < compiler
    这种情况是一定会编译报错的
    高版本的编译级别编译的class文件格式在低版本的jre上无法解析
  3. jre = compiler
    这种是推荐的方式,保证jre = compiler = 部署环境jdk

总的来说如果jre > compiler,那么源代码不要使用高版本的jdk特性,部署环境jdk >compiler即可.一般jre = compiler = 部署环境jdk

三:maven配置项目的target和source

    <plugin>  
       <groupId>org.apache.maven.plugins</groupId>  
       <artifactId>maven-compiler-plugin</artifactId>  
       <configuration>  
           <source>1.6</source>  
           <target>1.6</target>  
           <encoding>UTF-8</encoding>  
       </configuration>  
    </plugin>

此处:
target:表示部署环境的jdk(jre),编译版本
source:表示源代码的编译环境,即源代码中可以使用的语言特性

一般而言,target和source保持一致,但为了兼容低版本的jdk,source可以设置小于target版本(例如:部署环境jdk1.8,开发环境只有1.7,那么设置source=1.7,target=1.8同样可以运行,但是source不能高于target,否则编译失败)

参考链接:

  1. https://www.cnblogs.com/zh1164/p/6230298.html
  2. https://blog.csdn.net/chens616/article/details/8750723
  3. https://www.iteye.com/problems/51267
  4. https://www.cnblogs.com/EasonJim/p/6741682.html
  5. https://blog.csdn.net/shan9liang/article/details/17266519
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值