关于Java环境

一、概念


**JDK:**Java Development Kit。即Java开发工具,其中包含了Java运行环境、Java工具和Java基础类库。
**JRE:**Java Runtime Enviroment。即Java运行环境,包含JVM以及Java核心类库。
**JVM:**Java Virtual Machine。即Java虚拟机,是整个Java平台最关键的部分,用来运行Java程序。
背景:和其他程序不同,Java程序由JDKjavac编译成class文件的,然后在JRE环境(虚拟机JVM+lib核心文件jar)下运行,由虚拟机解释成机器语言。同时,每个操作系统的jvm都不一样,因此能让Java 程序在各大操作系统中运行。

二、 关系


1. 在安装JDK的时候会附带一个JRE询问是否安装,同时安装好的JDK目录下也有一个jre目录。为什么会存在2个JRE,他们是什么区别呢?
答:
JRE是Java运行环境,而JDK是包含了Java运行环境和诸多Java工具基础类库的开发工具。
因此,很多人可能已经明白了:JDK下的工具都是Java写的,而要运行这些程序,就需要JRE,因此jre是给开发人员使用的,当开发人员使用了JDK工具,写了程序,当然就需要JRE来运行。而如果当用户只需要运行Java程序的时候,单独的JRE就足够了。工作职责不同
也因此,只有在JDK的jre目录下存在用来编译的javac.exe文件,而单独JRE下的无法查看api

2. 在JRE下的lib和JDK下的/jre/bin目录中存在的clientserver目录中的jvm.dll。他们又是什么区别呢?
答:
server与client下jvm.dll的差别在于所使用的vm不同,执行java程序时默认的是client VM。若使用server VM,会花比较长的启动时间及消耗较多的内存,为的是启动程序后可以获得较好的执行性能。

3. JDK、JRE中共有3个bin目录,他们有什么区别?
答:
JDK下的lib包括Java**开发**需要的jar包,JDK下的一些工具可能用到该目录中的文件,比如编译器。
JRE下的lib包括Java**运行**需要的jar包,是给JVM运行使用,包括所有标准类和扩张类。
JDK下的JRE中的lib开发环境中,给JVM运行使用的jar包。当导入外部jar包时,因为系统需要编译,会调用JDK的编译器,同时由于运行需要,会需要JVM虚拟机运行程序。

4.Java环境配置时的path和classpath有什么用
答:
path是给JDK的工具提供的,是为了能在cmd中通过直接敲命令执行的。
classpath是为Java程序用到的库文件所设的,是资源库。因此当我们在开发中需要其他jar包,就要将他们加到classpath中。

5.javac和java有什么区别?
答:
Javac是把Java文件编译成class,Java是执行class文件。
在命令行中javac -version是JDK版本,java -version是JRE版本。所有可以通过修改path,改变系统默认的JDK版本和JRE版本。【where java】能查看本机上所有的java命令路径
一般默认JRE使用JDK下的JRE。
环境变量JDK和JRE不一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值