初识java——jdk?环境变量?及关于安装jdk的步骤

文章目录

  • JDK的安装
    • 在安装JDK时遇到的问题:
  • 背景知识
    • 一 什么是jdk
      • jdk简介
      • jdk文件详解:
        • 1 bin目录:
        • 2 lib目录:
        • 3 include目录
        • .exe文件是可执行的应用程序,这个我们都清楚,但.dll文件又是做什么的呢?
    • 二 环境变量
      • path环境变量:
      • 除path之外的其他环境变量


JDK的安装

https://www.bilibili.com/video/BV1ZW4y1c7LZ/
这是对应的视频,大家可以参考着安装学习

在安装JDK时遇到的问题:

除了在视频中可能遇到的问题之外,还有一种可能出现差错的情况:
当我们测试输入java -version的命令时,它不会显示java 命令不存在,而是没有反应
在这里插入图片描述
出现这个问题的原因是,我们之前下载过jdk,保留了java.exe,并且相应的之前环境变量没删除,
(在path变量中,系统查找路径的顺序是从上到下的)并且之前的路径在新的路径之上
所以导致执行这个命令,但是不出内容。
解决 这个问题的方式就是删除掉path中之前的路径,最好也把之前剩余的jdk部分清理干净就好了!

背景知识

一 什么是jdk

jdk简介

建议大家看完下面的详解后,再来看这个简介!

jdk的全称是Java Development Kit 意为java开发工具包,这是每一个java语言开发者所必需的。
jdk中包含了java编译器(javac),java虚拟机(JVM)等基本开发工具,以及java标准库(Java Standard Library):用于Java程序开发的各种类与方法(类似于c语言中库函数的作用),还有用于开发各种类型应用程序所需的API。
除了基本的开发工具与标准库外,jdk还提供了一些附加工具比如:JavaDoc(用于生成API文档)、Java Debugger(用于调试Java程序)、Java Mission Control(用于性能监控和故障诊断)等。

jdk文件详解:

我按照的是jdk17,所以就按此版本讲解:
当我们下载好jdk之后,打开文件:

在这里插入图片描述

1 bin目录:
 该目录用于存放一些可执行程序如:(1)  java编译器

在这里插入图片描述

    (2) java 运行工具

在这里插入图片描述

   (3)打包工具

在这里插入图片描述

 (4)文档工具

在这里插入图片描述

 还有一些其他的应用程序,这里不再一一列举,最为主要的是javac.exe与java.exe程序,javac.exe是java编译器,用于将编写好的java文件编程成java字节码文件(可执行的java程序)。java源文件的扩展名为.java,如 HelloWorld.java 编译运行后的java字节码文件的扩展名为.class 如 HelloWorld.classjava.exe是java运行工具,它会启动一个java虚拟机(JVM)进程,java虚拟机相当于一个虚拟的操作系统,专门负责运行由javac.exe生成的字节码文件!
2 lib目录:
 lib是library的简写,用于存放java提供的类与方法

在这里插入图片描述

在lib目录中src.zip文件用于存放JDK中的核心类的源代码
3 include目录
由于jdk即开发工具本身是由c/c++开发的,所以在引用时需要启动一些c语言的头文件,此目录就是用来存放这些头文件的。(.h文件)

在这里插入图片描述

.exe文件是可执行的应用程序,这个我们都清楚,但.dll文件又是做什么的呢?
.dll文件是动态链接库(Dynamic Link Library)的简写,
它是一种在windows系统中常见的**文件类型**,
.dll文件中包含了一系列可程序调用的函数与资源,可被多个程序共享使用
其作用主要有以下几个方面:
1  代码重用:.dll文件中包含了一些常用的代码与函数,其他程序调用时,可避免重复编写相同的代码。(这个和c语言中库函数的包含功能大体相同)
2  动态链接:程序运行时,可通过动态链接的方式调用.dll文件中的资源与函数
(也就是我们在执行bin目录下的.exe文件时,可链接调用bin目录下的.dll文件)
(相比于静态链接,动态链接可以减小程序的体积,提高内存的利用率。)
3  功能扩展:在加载.dll文件后,可以额外扩展程序的功能还有特性(所以目录中.dll文件右侧有“应用程序扩展”的标记)
4  系统资源访问:.dll 文件还可以提供对系统资源访问的接口,(即可以通过.dll文件中的函数来访问系统资源,比如硬件设备,操作系统功能等),这样其他程序就可以通过调用.dll文件中的函数来实现对这些资源的操作。

二 环境变量

环境变量是在操作系统之上设置的变量。

在这里插入图片描述

环境变量分为用户变量和系统变量,一个电脑中可以有多个用户,针对单个用户设置的变量则创建在用户变量上,所有的用户均可使用的变量创建在系统变量上!

path环境变量:

path环境变量用于存放可执行文件的路径,用于操作系统去查找对应的文件,当我们在命令行中(即控制台程序中)输入一个命令,操作系统就会根据path环境变量中存放的路径去查找相应的文件。

除path之外的其他环境变量

其他环境变量用于存放系统与应用程序的各种配置信息。

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

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

相关文章

MySQL在什么样的情况下会用不上索引,或者索引失效

1.不遵循最左前缀原则 当我们写一个sql语句时,后面会跟上查询条件,最左前缀原则就是在我们使用复合索引的时候查询条件会从做左到右进行匹配。只有充分的利用到联合索引的时候才会用到联合索引。 比如: select * from student where name …

数据结构学习之路--玩转队列的内核知识(附C源码)

嗨嗨大家~我又来啦!今天为大家带来的是与队列相关的知识。我们马上进入知识的海洋~ 目录 前言 一、队列 1 队列的概念 2 队列的实现 2.1 队列的定义 2.2 队列的初始化 2.3 队列的判空 2.4 入队 2.5 出队 2.6 取队头元素 2.7 取队尾元素 2.8 取…

python 学习笔记(零散版)

array(数组): 是numpy里的数据类型,用于存放同类型的多个元素,可以是多维的,内存连续,可以用索引访问数组中的元素。 以下是创建不同类型array的实例: import numpy as np# 整数类型 arr_int…

AOP 权限校验模块

自定义注解 检查权限 Documented Retention(RetentionPolicy.RUNTIME) Target({ElementType.TYPE, ElementType.METHOD}) public interface CheckPower {//请求路径参数String api() default "";//api相对地址String name() default "";//权限名称String …

37、Tomato(VulnHub)

Tomato 一、nmap 2211是ssh的端口,21的ftp也不是弱密码 二、web渗透 随便看看 目录爆破 /seclists/Discovery/Web-Content/common.txt /antibot_image/antibots/readme.txt 发现该站点存在反爬机制 /antibot_image/antibots/info.php 提示我们该网页存在个参数 GET&…

Unity - 2D物理系统

Unity - 2D物理系统 PS: 通用属性放在每一章最前面,每个组件只介绍特殊属性; 1.1 2D刚体(Rigidbody 2D) 属性描述Body Type Dynamic(动力学):适用于需要移动并且接受完全物理模拟的…

【Flutter】序列化方案之命令行生成model

目录 方案一、json_model 一行命令,将json文件转为Dart model类及.g.dart。安装使用 方案二、build_runner 手动写model类,命令行生成.g.dart序列化类安装使用 参考 方案一、json_model 一行命令,将json文件转为Dart model类及.g.dart。 安装…

SFP、SFP+、SFP28 与 QSFP28 收发器之间的差异:兼容性和性能

近年来,网络技术发展迅速,因此,计算专业人员面临着越来越令人困惑的术语和缩写词。 管理数据中心时必须了解的一个关键领域是收发器,特别是 SFP (1550nm/1310nm)、SFP (850nm) 和 QSFP28 (4x25G) 之间的差异。 这些型号在兼容性方…

深入浅出 SQL 优化:全面提升查询性能的技巧

文章目录 前言一、表结构分析1. 索引分析2. 数据类型分析3. 思考反范式设计的适用场景与潜在风险3.1数据冗余3.2 数据一致性3.3 更新性能 4. 关注临时表的创建与使用。4.1.尽量减少临时表的使用,以降低系统资源的消耗。4.2 使用合适的索引和数据类型优化临时表的性能…

HarmonyOS ArkUI实战开发-窗口模块(Window)

窗口模块用于在同一物理屏幕上,提供多个应用界面显示、交互的机制。 对应用开发者而言,窗口模块提供了界面显示和交互能力。对于终端用户而言,窗口模块提供了控制应用界面的方式。对于操作系统而言,窗口模块提供了不同应用界面的…

internet.getUserEncryptKey提示错误

大家好,相信你看到标题的时候,你应该是遇到这样的麻烦事情,微信小游戏的官方文档的说明不够全面,所以导致开发者在开发过程中会遇到非常棘手的问题,但无奈的是官方给与的只有冷冰冰的文字,包括很多开发者在开发者平台留言自己遇到的问题,比如常见的这个:internet.getUs…

swiper 去掉轮播图上的小点点 小圆圈(完美解决方案)

文章目录 问题描述解决方案问题复现处理方案 问题描述 大家好!我是夏小花,今天是2024年4月22日|农历三月十四,今天这篇博文主要解决swiper 去掉轮播图上的小点点 小圆圈,具体解决方案如下所示 解决方案 问题复现 现在现在可以看…

命令模式:将请求封装为对象

在软件工程中,设计模式是解决常见问题的成熟模板。命令模式(Command Pattern)是这些设计模式之一,它属于行为型模式,用于将一个请求封装为一个对象,从而允许用户使用不同的请求、队列或日志请求来参数化其他…

数据结构初阶-二叉树

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 二叉树 树概念和结构 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限节点组成的一个具有层次关系的集合,把它叫做树…

python--pyQt5 进度条:QProgressBar

https://www.cnblogs.com/itwangqiang/articles/14959401.html https://blog.csdn.net/weixin_43990846/article/details/123880081 进度条用于向用户指示操作的进度,并向他们保证应用程序仍在运行 例 1 import sys from PyQt5.QtWidgets import QApplication, QWi…

【机器学习】特征筛选:提升模型性能的关键步骤

一、引言 在机器学习领域,特征筛选是一个至关重要的预处理步骤。随着数据集的日益庞大和复杂,特征的数量往往也随之激增。然而,并非所有的特征都对模型的性能提升有所贡献,有些特征甚至可能是冗余的、噪声较大的或者与目标变量无关…

Webpack-

定义 静态模块:指的是编写代码过程中的html,css,js,图片等固定内容的文件 打包:把静态模块内容压缩、整合、翻译等(前端工程化) 1)把less/sass转成css代码 2)把ES6降级…

OpenHarmony鸿蒙南向开发案例:【智能加湿器】

样例简介 智能加湿器具有实时监控其所处环境温度、湿度,并通过数字管家设置日程,自动打开加湿器控制湿度功能。显示界面使用DevEco Studio 编写的js应用,具有很好的兼容和移植特性。硬件上采用了带有HDF框架的驱动模型,通过GPIO和…

nodejs在控制台打印艺术字

const figlet require("figlet");figlet("SUCCESS", function (err, data) {if (err) {console.log("Something went wrong...");console.dir(err);return;}console.log(data);}); 参考链接: https://www.npmjs.com/package/figlet…

JetBrains相关的IDE有哪些?

JetBrains是一家成立于2002年的捷克软件开发公司,总部位于捷克的布拉格,同时在俄罗斯的圣彼得堡及美国麻州波士顿等地设有办公室。该公司以其高质量的集成开发环境(IDE)产品而闻名,这些产品被广泛应用于各种编程语言和…