当前位置: 首页 > news >正文

JDK 为什么需要配置环境变量

前言

  首先,我们要知道 Java 程序的执行过程。首先将 xxx.java 文件(使用 javac 编译指令)编译成 xxx.class 文件(字节码文件),再将字节码文件(使用 java 执行指令)解释成电脑所能认识的机器指令并运行。

正文

  Java 相关的环境变量:JAVA_HOME/ PATH / CLASSPATH

  • 配置 JAVA_HOME 环境变量 (必需)

  JDK 是我们进行 java 开发必不可少的,在开发过程中我们通常会使用一些 java 开发过程中用到的软件(如 eclipse、tomcat等)是通过 JAVA_HOME 来找到 JDK 的(环境变量 JAVA_HOME 的值就是 JDK 安装的路径),所以我们不配置JAVA_HOME的话那我们使用eclipse时可能要受到影响。

  • 配置 PATH 环境变量 (必需)

  前面讲到了 Java 程序的运行首先需要使用 javac 编译指令,编译成字节码文件,继而使用 java 执行指令解释并运行字节码文件。而 window 运行 java 编译命令 javac 或者执行指令 java 的时候,本地查找不到某个命令或文件,就会到path中去查找。
  那这个 javac 我们知道是存在 JDK 目录下面的 bin 目录中的,因为我们不可能在每个 java 文件所在目录放置 JDK ,故把 JDK 放置 path 环境变量中,这样每个 java 文件都可以通过 path 中设定的jdk目录找到编译命令进行编译。

  • 配置 CLASSPATH 环境变量(非必需):

  在java开发过程中我们会用到很多开发人员已经帮我们写好的标准类库,而我们要用这些类库的话必须告诉计算机如何找到它们,CLASSPATH环境变量的作用就是指定类搜索路径,JVM就是通过CLASSPTH来寻找类的,设置CLASSPATH环境变量即可使计算机找到它们。

  为什么非必须配置CLASSPATH环境变量呢?

  • 答案请看我上一篇文章: Win11 搭建 Java 开发环境(JDK)

相关文章:

  • 单片机IO
  • 项目实战--Spring Boot + Minio文件切片上传下载
  • PyTorch(六)优化模型参数
  • 2.2.5 C#中显示控件BDPictureBox 的实现----ROI交互续2
  • Golang中defer和return顺序
  • LabVIEW幅频特性测试系统
  • 前端工程化08-新的包管理工具pnpm
  • python系列30:各种爬虫技术总结
  • MySQL增删改查
  • Java Nio核心概念理解
  • 关于 Mybatis 的开启二级缓存返回对象不一致问题
  • 嵌入式PCB制图面试题及参考答案(2万字长文)
  • 【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例应用
  • 【2024德国签证】去德国读博士需要申请什么签证?
  • Spire.PDF for .NET【文档操作】演示:以特定的缩放比例/百分比打开 PDF 文件
  • @angular/forms 源码解析之双向绑定
  • 【mysql】环境安装、服务启动、密码设置
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • gitlab-ci配置详解(一)
  • Go 语言编译器的 //go: 详解
  • Java多线程(4):使用线程池执行定时任务
  • miaov-React 最佳入门
  • Mithril.js 入门介绍
  • Python 反序列化安全问题(二)
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Wamp集成环境 添加PHP的新版本
  • 阿里云Kubernetes容器服务上体验Knative
  • 马上搞懂 GeoJSON
  • 世界上最简单的无等待算法(getAndIncrement)
  • 事件委托的小应用
  • 优秀架构师必须掌握的架构思维
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #1015 : KMP算法
  • #include
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (+4)2.2UML建模图
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (六)软件测试分工
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (四)图像的%2线性拉伸
  • (万字长文)Spring的核心知识尽揽其中
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ***测试-HTTP方法
  • .naturalWidth 和naturalHeight属性,
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net 按比例显示图片的缩略图
  • .NET 指南:抽象化实现的基类
  • .NET 中什么样的类是可使用 await 异步等待的?