推文上热门(千万赞三)

从jdk、jvm、jre聊到path、classpath、Jav

2020-02-25  本文已影响0人  学知

Java,一门常年在TIOBE世界语言排行榜上霸榜的语言,有很多企业都需要招聘Java开发工程师。所以,以下这些面试官常问的问题值得你认真理解。

01 定义

JVM (Java Virtual Machine),也就是我们常说的Java 虚拟机。它只认识 以.class结尾的字节码文件,它能将字节码指令进行识别并调用操作系统向上的 API 完成动作。所以,jvm虚拟机是Java跨平台的核心。

JRE (Java Runtime Environment),Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。

JDK (Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。显然,这三者是一层层嵌套的关系:JDK>JRE>JVM

02 跨平台性

所谓跨平台性是指Java代码可以一次编译多平台运行,Java实际上是通过不同平台的jvm虚拟机来实现跨平台的,不同平台的虚拟机都可以识别并解释字节码文件。所以说同一段Java代码编译后产生一个或多个字节码文件,这些字节码文件通过不同平台的jvm虚拟机映射到各平台的API接口,实现跨平台性。(插一句话,不同平台硬件不一样,架构不一样,暴露给上层的系统调用接口不一样,所以当然需要每个平台定制一套jvm来屏蔽各平台的不一致性)

03 环境变量是什么?

在安装完jdk后,需要我们配置环境变量,那么在配置环境变量的过程中,遇到的path、classpath以及JAVA_HOME有又是什么呢?它们有什么作用?

04 安装jdk实战

windows系统的jdk安装较为简单,使用默认安装即可,这里不再赘述。

右键“我的电脑”--》“属性”--》高级系统设置--》环境变量,在系统环境变量中新建JAVA_HOME,值为C:\Program Files\Java\jdk1.8.0_191新建path,值有两个,一个是%JAVA_HOME%\jre\bin,另一个是%JAVA_HOME%\bin,新建classpath,值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

步骤1:scp命令远程传输文件命令格式:scp 文件路径 用户名@IP地址:存放路径
例如:scp C:\Users\DELL\Desktop\jdk-8u241-linux-x64.tar.gz root@49.223.164.95:/usr/local/soft/

步骤2:打开Linux终端,解压jdk压缩包到指定目录命令格式:tar -zxvf 压缩包名称 -C 指定路径名例如:tar -zxvf jdk-8u241-linux-x64.tar.gz -C /usr/local/softins为方便记忆,我给解压后的jdk软件包改名,命令为:mv jdk1.8.0_241/ jdk1.8

05 配置Linux系统环境变量

linux中安装jdk,重在环境变量的配置:步骤1:打开配置环境变量的文件,命令是 vi /etc/profile步骤2:在配置文件只能底部添加JAVA_HOME,path,classpath的路径

#JAVA_HOME是jdk的安装路径
export JAVA_HOME=/usr/local/softins/jdk1.8
#CLASSPATH中'.'代表本级目录,另外添加了两个工具包rt.jar和dejar,中间用冒号隔开
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

步骤3:保存退出后让配置文件生效,命令为source /etc/profile06

步骤4:测试是否安装成功
windows平台打开命令行窗口,Linux平台则打开终端,输入java -version,如果正常输出jdk版本信息,则安装成功。

题外话:不知道你是否注意到,windows平台安装完jdk后,有两个jre,一个和jdk同一级目录,另一个在jdk文件夹下,那么这两个jre有区别吗?

另外,配置jdk时为何要添加path,是因为path路径下有java.exe、javac.exe 命令以及其它命令,javac负责编译源文件,java命令则将字节码文件交给虚拟机解释执行。而这些命令上它们本身又都是由 Java 编写的,所以在 jdk 目录下的 jre 既提供了这些工具的运行时环境,也提供了我们编写完成的 Java 程序的运行时环境。

上一篇 下一篇

猜你喜欢

热点阅读