第一章《初学者问题大集合》第5节:Java开发环境的搭建

news2025/8/11 18:53:01

上一小节阐述了Java程序运行的过程和原理,但那都一些理论,并没有真正的实战操作。此时读者们肯定想知道:从哪里才能搞到一个编译器和那个传说中能让Java程序得以运行的虚拟机呢?有了虚拟机,又怎样才能让Java程序在电脑上运行起来呢?很简单,当搭建好Java运行环境之后,就能编写并运行Java程序啦!本节内容将详细讲解Java运行环境的搭建过程。

搭建Java运行环境可以分为两大步骤:

1、下载并安装JDK

2、配置环境变量

首先演示下载和安装JDK的步骤。

1.5.1下载并安装JDK

在讲解这个步骤之前,各位读者必须先弄清楚什么是JDK。JDK的全称是“Java Development Kit”,翻译成汉语就是“Java开发工具包”。开发和运行Java程序,必须要有这个工具包。为什么呢?各位读者请想一下:写一段Java程序,需要编译器把Java源文件编译成字节码文件,可是去哪找编译器呢?JDK里就有啊!有了字节码文件,需要虚拟机才能运行它,可是去哪找虚拟机呢?JDK里就有啊!开发Java程序如同是盖一座房屋,但是去哪找盖房的那些基本工具和材料呢?JDK里也有啊!JDK里包含了开发Java程序所必需全部基本装备,所以才叫“Java开发工具包”。那么现在问题来了:从哪里才能搞到这个JDK呢?

通常情况下,程序员都会从官方网站下载JDK,但官网下载的速度稍微有点慢,很多人也会选择从一些资源网站上直接下载。另外,JDK也并不是一成不变的,它也在随着时代的发展不断的更新版本。在此以从官网下载JDK17为例来讲解JDK的下载和安装过程。之所以选择JDK17为例进行讲解,是因为JDK17是到目前为止JDK各版本中最新发布的长期支持版本。

下载JDK的官方网址是:https://www.oracle.com/index.html。当进入这个网站之后,可以看到如图1-3所示网页。

图1-3 Oracle官网首页

按图1-3中箭头指示,单击网页上部方框中的“Products”,就会跳转到产品信息页,如图1-4所示。

图1-4 Oracle官网产品信息页

在图1-4所示的网页中单击“Java”,将会跳转到Java相关产品的网页。

图1-5 Java相关产品网页

仍然是按照图片中箭头引导,单击“Download Java”就会跳转到下载JDK的网页,如图1-6所示。

图1-6 JDK17的各种版本

在这个网页中,读者可以根据操作系统情况选择下载适合自己计算机系统的JDK产品,在此以windows64位操作系统可直接安装版本为例进行演示。当下载了JDK安装包之后,就可以进入到安装步骤。

双击下载好的安装文件,将会进入如图1-7所示的开始安装JDK界面。

图1-7 开始安装JDK17

单击“下一步”,正式进入如图1-8所示的安装界面。

图1-8 JDK17安装界面

在此界面中可以选择JDK的安装路径。如果需要的话,可以单击“更改...”按钮设置新的安装路径。默认的安装路径是“C:\Program Files\Java\jdk-17.0.1”,建议各位读者不要更改这个安装路径,如果一定要更改,切记两点:

1、一定要记清楚新的安装路径在哪里。

2、安装路径中最好不要出现中文。

再次单击“下一步”,进入如图1-9所示的安装界面。

图1-9正在安装JDK17

当安装进入到如图1-10所示界面即表示安装成功。

图1-10 JDK17安装成功

直接单击“关闭”按钮即可完成安装JDK。

1.5.2配置环境变量

JDK的安装完成之后,搭建Java开发环境的工作就可以进入到第2步骤,也就是环境变量的配置步骤。

首先从计算机硬盘上找到JDK的安装目录。此处提醒各位读者:之前把JDK安装到哪里,就去哪里寻找安装目录,图1-11所示的仅是默认的安装目录。

图1-11 JDK默认安装目录

在安装目录下可以看到一个叫做“bin”的文件夹,打开该文件夹,然后单击窗口的地址栏,使地址栏变为可编辑状态,之后复制地址栏中的地址。注意!要复制的是地址栏中的地址,而不是bin文件夹下那一大堆文件!操作过程如图1-12所示。

图1-12 bin文件夹路径地址

复制好地址栏中的地址之后,回到Windows桌面,右键单击“计算机”,在弹出的右键菜单中单击“属性”菜单项,出现“计算机属性”界面,如图1-13所示。

图1-13 计算机属性

在该界面中单击左侧的“高级系统设置”,出现“系统属性”面板,在该面板中选择“高级”选项卡,可以看到右下角有“环境变量按钮”,如图1-14所示。

图1-14 系统属性面板

单击图1-14中的“环境变量”按钮,打开“环境变量”设置对话框,如图1-15所示。

图1-15环境变量设置对话框

图1-15所示的环境变量设置对话框中,有“Administrator的用户变量”和“系统变量”两部分。上半部分的“Administrator的用户变量”仅对当前登录用户Administrator有效,而下半部分的“系统变量”则对所有用户都有效。如果希望配置的环境变量仅对当前登录用户起作用,则从上半部分界面中完成配置,而如果希望配置的环境变量对所有用户都起作用,则从下半部分界面中完成配置。在此,以修改系统环境变量演示配置过程。如图1-15所示。选择“系统变量”中的“Path”,然后单击“编辑按钮”,将会出现一个编辑“Path”环境变量的对话框,如图1-16所示。

图1-16编辑系统环境变量

出现这个对话框时,“变量值”文本框中的内容会处于选中状态,首先把光标移动到最左边,然后把刚才复制的地址粘贴到这个文本框中,并且手动加上一个英文输入法的分号(;)以便和其他环境变量分隔,然后单击“确定”按钮即可,如图1-17所示。

图1-17设置Path环境变量

之后,依次单击刚才就已经出现的“环境变量”和“系统属性”对话框上的“确定”按钮即可完成配置环境变量的操作。此处再次提醒各位读者:当把复制好的地址粘贴到“变量值”文本框之后,一定要用“英文输入法的分号”把这个地址与之前已有的内容分隔开,千万别用“中文输入法的分号”。

1.5.3测试开发环境

现在已经配置好了环境变量,这样就完成了Java开发环境的搭建工作。接下来将测试之前的设置工作是否成功。

首先打开windows的命令行窗口,然后在窗口中输入“java -version”命令并且按下回车键。输入该命令注意两个小细节:首先,“java”和“-version”之间有个空格,切记这个空格千万不能少。其次,单词“version”前面是一个“英文输入法的减号”(-),而不是一个下划线(_),各位读者千万别敲错了。如果JDK正确安装,环境变量配置也正确,将在命令行窗口中显示JDK、JRE和Java虚拟机的版本号,如图1-18所示。

图1-18 显示JDK版本号

1.5.4配置环境变量的意义

多数读者并不知道安装了JDK之后为什么还要配置环境变量。大家回顾一下配置环境变量的过程:每个人都是把JDK安装目录下一个叫做“bin”的文件夹的完整路径粘贴到了Path这个环境变量下,而“bin”文件夹下有好多个exe文件,这些exe文件就是一个个计算机可以运行的小程序,这些小程序有的能编译Java源程序,有的可以启动虚拟机,也有的能生成Java源程序的说明文档。配置环境变量,就是为了在计算机的任何位置都能调用到这些小程序,从而让程序员在计算机的任何位置都能编写、编译和运行Java程序,否则的话,Java程序只能在“bin”文件夹下编译运行。

另外还有读者会问:有很多教科书或网上的资料都说要配置3个环境变量才能正确搭建Java环境,为什么本书中只配置了一个环境变量呢?这是因为使用版本早于1.5之前的JDK搭建出的Java开发环境,只能搜索“bin”文件夹下的字节码文件,并且为了运行Java程序,还需要加载两个必需的类库文件,这导致运行Java程序很不方便。为了能够让Java程序在任何地方都能运行,程序员们还必须配置一个“CLASSPATH”环境变量。而配置“CLASSPATH”环境变量的时候,需要提供3环境变量个值,这3个值当中都出现了JDK的安装路径,为了方便以后在JDK版本升级之后重新配置环境变量更方便,一般情况下程序员又会创建一个叫做“JAVA_HOME”的环境变量来保存JDK的安装路径。因此程序员们需要配置“Path”、 “CLASSPATH”和“JAVA_HOME”三个环境变量。

但是,使用版本晚于1.5的JDK所搭建的Java开发环境已经具备了自动搜索当前文件夹下字节码文件的功能,并且也能够自动加载程序运行所需的类库文件。因此不需再要在配置“CLASSPATH”和“JAVA_HOME”这两个环境变量。

1.5.5 JDK、JRE和JVM的关系

想要学习Java编程,就必须理解三个专业术语:JDK、JRE和JVM,因为这3个术语在你以后的学习和工作中会经常出现。

首先说JDK,这个术语前文已经提到过,它的全称是“Java Development Kit”,意思是“Java开发工具包”,它是给开发人员用的。开发人员除了要写代码,还要完成编译代码、调试代码、给代码打包等其他工作。此外,开发人员写代码的时候还需要调用一些“基础类库”中的资源。JDK中就包含了开发人员在编译代码、调试代码、打包代码以及其他操作时所需要的各种工具,同时还包含了基础类库。总之,开发Java程序所必需的基本装备都存在于JDK当中。

再来说JRE,很多读者可能是第一次听说这个词,它的全称是“Java Runtime Environment”,意思是“Java运行时环境”。它是给使用Java程序的用户准备的。之前讲过,Java编写的程序最终不会生成可执行的exe文件。所以不能在计算机上直接运行,为了运行Java程序,就必须专门提供一个满足Java运行的环境,这个环境就是JRE。JRE既然是给用户准备的,用户不需要写代码,也不需要编译和调试代码,所以JDK当中那些用来编译代码、调试代码等与开发人员相关的工具都不会出现在JRE当中,JRE当中仅保留了运行Java程序所需要的几个工具。当然,基础类库也是要保留在JRE当中的,因为基础类库提供了Java程序运行的必备资源。

最后说一下JVM,这个词之前也讲到过,表示“Java虚拟机”。前文已经介绍:没有Java虚拟机,就无法运行Java程序。其实,严格说来,Java虚拟机只是一个概念或是一套标准。任何公司或个人都可以发布自己的虚拟机产品,只要这个虚拟机产品能按官方规定的标准工作就可以。Java官方当然也会发布自己的虚拟机产品,这款产品的名字叫做 “HotSpot”,它在安装JDK的时候就已经同时被安装到了计算机上,细心的读者在命令行窗口中输入“java -version”命令时会发现,按下回车键之后命令行窗口中出现了三条信息,其中第三条信息显示的就是HotSpot这款虚拟机产品的版本号。

那么,JDK、JRE和JVM之间是什么关系呢?其实它们之间就是一种包含关系。JDK是开发人员必须具备的工具包,开发人员在编写代码之后要对程序进行调试运行,而运行程序的时候就必须要有Java运行时环境JRE,所以JRE就是JDK的一部分,安装JDK的同时也就安装了JRE。JRE中最核心的部分又是Java虚拟机JVM,安装JRE的同时也就安装了JVM。


除阅读文章外,各位小伙伴还可以点击这里观看我在本站的视频课程学习Java!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计JAVA广州中小学学校信息管理系统

[附源码]计算机毕业设计JAVA广州中小学学校信息管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: S…

ASEMI代理艾赛斯IXFK32N100P,车规级MOS管IXFK32N100P

编辑-Z 艾赛斯车规级MOS管IXFK32N100P参数: 型号:IXFK32N100P 漏极-源极电压(VDS):1000V 连续漏电流(ID):32A 功耗(PD):960W 工作结温度&am…

一文带你快速了解【内部类】

1. 什么是内部类? 在一个类 A 中,又定义了一个类 B ,此时这个类 B 就是内部类,而类 A 则是外部类!内部类也是一种封装得表现 public class A{class B{} }我们看上面代码,此时 A 就是外部类,B …

美团外卖搜索基于Elasticsearch的优化实践

美团外卖搜索工程团队在Elasticsearch的优化实践中,基于Location-Based Service(LBS)业务场景对Elasticsearch的查询性能进行优化。该优化基于Run-Length Encoding(RLE)设计了一款高效的倒排索引结构,使检索…

蚂蚁集团最新业绩出炉:净利润同比下降63%,连续三个季度下滑

11月17日,阿里巴巴集团(简称“阿里”,HK:09988、NYSE:BABA)公布2023财年第二季度(对应自然年2022年第三季度)业绩。财报显示,阿里巴巴2022年第三季度的收入为人民币2071.76亿元(约合…

用 Python 编写 Chrome 扩展赚美刀,通过使用 PyScript 非常轻松(教程含源码)

有很多文章介绍了用于将 Python 代码直接嵌入 HTML的PyScript的出现,但直到现在,在Python中创建浏览器扩展一直是一扇紧闭的门。 我很幸运地获得了PyScript 的工程经理的帮助,并最终弄清楚了如何将 Python 脚本作为 Chrome 扩展运行,并在弹出框中显示输出(参见上面的屏幕…

m无线通信的信道建模matlab仿真,仿真分析了6种不同的无线通信信道模型

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 无线电波的传播环境非常复杂,再加上无线电波自身的多样性,使得电波会通过多种方式和途径从发射天线传播到接收天线。无线视距是指与无线视线相关的路径的长度&…

floyd-warshall算法浅理解

相比于矩阵乘法,floyd巧妙利用了最短路具有最优子结构的性质,即最短路径的子路径也是最短路径,得到以dij(k)d_{ij}^{(k)}dij(k)​(为从i到j的一条中间节点全部取自集合{1,2,...,k}\{1,2,...,k\}{1,2,...,k}的一条最短路径权重&…

全球人口突破80亿!免费分享全球人口分布数据

概述 就在2022年11月15日16:00左右全球人口突破80亿! 全球人口突破80亿 根据此前联合国人口基金会的统计,全球人口在2011年10月31日达到了70亿。 全球人口从70亿增长到今天的80亿,用了11年零半个月。 到2022年,全球哪里人口最…

分组查询子查询

分组查询 分组查询是指使用 group by 字句对查询信息进行分组。 格式: SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件; 分组操作中的 having 子语句,是用于在分组后对数据进行过滤的,作用类似于 where 条 件。 having与where的区…

在agx xavier上运行 deepstream的样例 deepstream-test4

在agx xavier上运行 deepstream的样例 deepstream-test4 主要演示如何将检测结果通过kafka发送到服务器。 deepstream版本:5.0 前置条件:服务器上正常运行的kafka服务。 下面主要讲发送端的操作。 1、安装依赖项 1)所有样例都需要的依赖…

Prometheus 采集snmp监控数据

download snmp_exporter snmp_exporter采集数据 snmp_exporter 一键监控安装脚本 vim /snmp_exporter.sh #!/bin/sh # -*- coding: utf-8 -*- # Date: 2022/11/18echo "download snmp_exporter" sleep 2 wget -N -P /root/ https://github.com/prometheus/snmp_ex…

美食杰项目 -- 菜谱大全(二)

目录前言:具体实现思路:步骤:1. 展示美食杰菜谱大全效果2. 引入element-ui3. 代码总结:前言: 本文给大家讲解,美食杰项目中菜谱大全实现的效果,和具体代码。 具体实现思路: 点击头…

金蝶苍穹开发工程师初级学习第一节

金蝶苍穹开发工程师初级学习第一节 ✨欢迎关注🖱点赞🎀收藏⭐留言✒ 🔮本文由京与旧铺原创,金蝶首发! 😘系列专栏:低代码学习 💻首发时间:🎞2022年11月12日&a…

github action定时任务

需求 定时任务1 (8:00~13:00),执行bash脚本定时任务2 (18:00),修改定时任务1的执行时间 文档 workflows官方文档workflows action uses查询actions/checkoutv3About the GITHUB_TOKEN secret 问题之refusing to allow a GitHub App to create or upd…

MySQL:常用函数解析、开窗函数示例

数学函数 count() count()、count(field) 统计某个结果集中的总数量,field为要统计的字段。 SELECT count( 1 ) FROM db1.users 复制代码 sum() sum(field) 统计某个字段累计的总和,field为要统计的字段。 SELECT sum( price ) FROM order_info 复制…

Git 操作流程与命令汇总

1. 为什么要使用 git ? 在写项目时,会产生多个版本,以及多个同学协同配合的情况,为了很好的管理,推出了Git, 版本管理工具,持久化,多人化 2. 首先需要弄明白四个概念 工作区:仓库…

深入浅出mybatis分页

MyBatis 分页插件 PageHelper 如何使用&#xff1f; 如何使用分页插件 1&#xff1a;添加依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.5</ver…

基于springboot学生管理系统设计与实现

摘  要 目前&#xff0c;借助信息管理系统能够有效解决高校的信息管理问题&#xff0c;对于提高教育管理水平有着非常重要的作用。 因此&#xff0c;有必要建立一个与之相适应的管理信息系统。基于此&#xff0c;本文为了使教师高效地管理学生信息&#xff0c;需要对现代的学…

【LeetCode-中等】221. 最大正方形(详解)

题目 在一个由 0 和 1 组成的二维矩阵内&#xff0c;找到只包含 1 的最大正方形&#xff0c;并返回其面积。 力扣原题链接 方法1&#xff1a;暴力 暴力法一般不是最优解&#xff0c;但是可以拿来练手 由于正方形的面积等于边长的平方&#xff0c;因此要找到最大正方形的面积&…