1.4 系统环境变量

news2024/11/17 15:30:35

 

前言:
 

**1.4 系统环境变量**

---

**主要内容**:
- **系统环境变量的定义**: 系统环境变量是在计算机操作系统中定义的一系列变量。这些变量是全局的,可以被操作系统上的所有应用程序所使用。
  
- **Java中的环境变量**:
  - 当学习和使用Java时,有两个特别重要的系统环境变量需要配置:`PATH` 和 `CLASSPATH`。
  - `PATH` 是用来告诉操作系统在哪里可以找到可执行文件,如 `javac`。
  - `CLASSPATH` 是用来告诉Java运行时从哪里加载类文件。

**示例与说明**:
- 如果不配置PATH环境变量,当你在任何位置尝试运行`javac`命令时,系统可能会提示错误,表示没有找到该命令。这是因为系统不知道去哪里查找这个命令。
  
- 通过在命令行窗口输入 `set PATH` 命令,你可以查看当前系统的PATH环境变量值。

**图片参考**:
- 图1-12: 显示“查看”选项卡的界面。
- 图1-13: 显示了尝试在未配置PATH的情况下执行`javac`命令的错误提示。
- 图1-14: 显示了通过`set PATH`命令查看的系统PATH环境变量值。

**总结**:
配置正确的系统环境变量对于Java开发是非常关键的。它确保了在任何位置都可以轻松地运行Java相关的命令,并且Java程序可以正确地加载所需的类文件。

1.4.1 PATH环境变量 

**1.4.1 PATH环境变量**

---

**主要内容**:

1. **定义**:
   - PATH环境变量是用于存储命令或可执行程序的路径的一系列值,路径之间以分号分隔。
   - 当执行一个命令时,系统首先在当前目录搜索对应的可执行文件,未找到时,会在PATH环境变量定义的路径中查找。

2. **javac命令问题**:
   - 如果不将javac所在的路径加入到PATH变量,会导致系统找不到javac命令,如图1-13所示。
   - 从图1-14可以看到,PATH没有javac的路径。
   
3. **解决方法**:
   - 为了使javac命令有效,需要将其路径添加到PATH中。
   - 使用命令:`set path=%PATH%;C:\Program Files\Java\jdk-11.0.11\bin` 以将javac的路径加入到当前PATH。
   - %PATH%是引用当前的PATH值;而`C:\Program Files\Java\jdk-11.0.11\bin` 是javac所在的路径。
   - 图1-15展示了添加后的PATH值。

4. **持久化PATH配置**:
   - 在命令行下的PATH修改是临时的,关闭窗口后会失效。
   - 为了持久保存PATH设置,需要在系统属性中进行配置。
   
5. **系统属性配置步骤**:
   - 右击“计算机” -> “属性” -> “高级系统设置” -> “环境变量” (如图1-17)。
   - 在弹出的环境变量对话框中,找到并选择PATH变量 -> “编辑”(如图1-18)。
   - 点击“新建”并添加javac的路径(如图1-19),然后点击确定完成配置。

6. **验证**:
   - 打开命令行,执行 `set path` 查看配置(如图1-20)。
   - 如果javac的路径出现在结果中,表示配置成功。

**结论**:
为了在任何位置都能执行javac命令,必须将其路径添加到PATH环境变量中,并确保在系统属性中永久保存该配置。

 

 

 1.4.2 CLASSPATH 环境变量

**1.4.2 CLASSPATH环境变量**

---

**定义:** CLASSPATH是一个环境变量,它定义了Java类库和用户定义类的搜索路径。Java虚拟机(JVM)使用此路径来查找字节代码文件(.class文件)。

**主要内容:**

1. **用途**:当JVM试图加载某个类时,它会查看CLASSPATH中定义的路径来搜索该类的.class文件。
   
2. **查看和配置**:CLASSPATH的查看与配置方式与PATH环境变量相同。

3. **示例**:

    - **错误场景**:在C盘根目录下使用命令`java HelloWorld`尝试运行预先编译好的HelloWorld程序,结果报错(见图1-21)。错误的原因是JVM无法在指定的路径下找到HelloWorld.class文件。
    
    - **检查CLASSPATH**:使用`set classpath`命令查看当前CLASSPATH环境变量的值(见图1-22)。这将显示CLASSPATH是否已经包含了HelloWorld.class文件的路径。在此示例中,它没有被设置。

    - **设置CLASSPATH**:通过执行命令`set classpath=C:\Program Files\Java\jdk-11.0.11\bin`,为JVM指定了.class文件的位置。再次运行`java HelloWorld`后,程序成功执行并输出"hello world"(见图1-23)。这表明即使HelloWorld.class文件不在C盘根目录下,但只要在CLASSPATH中正确指定了其位置,`java HelloWorld`命令仍然可以正确执行。

4. **注意事项**:从JDK 5开始,如果用户没有设置CLASSPATH环境变量,JVM会默认将CLASSPATH设置为“.”(即当前目录)。因此,在JDK 5及更高版本中,如果HelloWorld.class文件位于当前目录,并且没有设置CLASSPATH,那么JVM仍然可以找到并运行HelloWorld程序。

---

**结论**: 理解和正确设置CLASSPATH对于Java编程是非常重要的。如果JVM不能在CLASSPATH指定的位置找到.class文件,程序就会失败。另外,JDK的后续版本提供了一些便利性,例如默认的CLASSPATH设置为当前目录,这使得开发过程更加简便。但仍然需要确保了解和掌握如何手动设置CLASSPATH。

 

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

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

相关文章

[计算机入门] Windows附件程序介绍(轻松使用)

3.15 Windows附件程序介绍(轻松使用) 3.15.1 讲述人 Windows系统中的讲述人(Narrator)是一项辅助功能,旨在帮助具有视觉障碍或阅读困难的用户。讲述人可以读出屏幕上的文本和其他内容,同时提供导航和操作指导。 以下是讲述人程序…

算法通关村第16关【黄金】| 滑动窗口与堆结合

思路:求最大值和前k个最大值通常就要考虑使用堆 一般想法是堆的根结点保存当前窗口最大值,循环加入元素,怎么判断根结点是不是在窗口内呢 那就是还需要保存元素对应的下标,当根结点的下标在窗口外(一定会在最左侧&am…

亚马逊计划向开创性的人工智能初创公司Anthropic投资高达4亿美元

原创 | 文 BFT机器人 在一项巨大而突破性的举措中,亚马逊公布了向人工智能初创公司Anthropic投资高达4亿美元的计划,其愿景是创建更易于理解和可控的人工智能系统。此次合作标志着亚马逊打算在人工智能领域率先取得进步,巩固其在技术领域的地…

gitee 创建仓库 git 连接

文章目录 gitee 创建仓库 & git 连接gitee 创建仓库git 可视化工具使用 gitee 创建仓库 & git 连接 gitee 创建仓库 gitee 官网:工作台 - Gitee.com 先注册、登录账号 点击右上角 号,新建仓库 填写仓库名称,然后创建 选择你所在…

1.5 JAVA程序运行的机制

**1.5 Java程序的运行机制** --- **简介:** Java程序的运行涉及两个主要步骤:编译和运行。这种机制确保了Java的跨平台特性。 **主要内容:** 1. **Java程序的执行过程**: - **编译**:首先,扩展名为.jav…

VMware Horizon 8 运维系列(二)win10设置共享桌面图标

前言 在win10模板上用管理员帐号安装好软件之后,有的软件快捷图标不会出现在桌面上,有的即使有在桌面上出现,但是当发布云桌面池后,客户端登录的都是不同的域用户,当不同的用户登录系统的时候,很多软件快捷…

【数据库——MySQL】(16)游标和触发器习题及讲解

目录 1. 题目1.1 游标1.2 触发器 2. 解答2.1 游标2.2 触发器 1. 题目 1.1 游标 创建存储过程,利用游标依次显示某部门的所有员工的实际收入。(分别用使用 计数器 来循环和使用 标志变量 来控制循环两种方法实现) 创建存储过程,将某部门的员工工资按工作…

Pr音乐鼓点节拍插件BeatEdit出现不能标点问题如何解决?

BeatEdit是一款专业的PR卡点自动剪辑插件工具。BeatEdit最新版内置采集、剪辑、调色、美化音频、字幕添加、输出、DVD刻录等功能,还支持检测音乐节拍、生成时间线标记等操作。通过BeatEdit版软件用户只需选择素材就可以自己剪辑,多用于进行鬼畜视频制作。…

MS31703H 桥栅极驱动控制器,可P2P替代TI的DRV8703

MS31703NA 是一款小型单通道 H 桥栅极驱动 器。它使用四个外部 N 通道 MOSFET ,驱动一个双 向刷式直流电机。 PH/EN 、独立半桥或 PWM 允许轻松连接到控制 器电路。内部传感放大器提供可调的电流控制。集 成的电荷泵可提供 100% 占空比,而…

docker搭建Jenkins及基本使用

1. 搭建 查询镜像 docker search jenkins下载镜像 docker pull jenkins/jenkins启动容器 #创建文件夹 mkdir -p /home/jenkins_home #权限 chmod 777 /home/jenkins_home #启动Jenkins docker run -d -uroot -p 9095:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home…

基于FPGA设计的低成本四通道 1GSPS 示波器设计资料

完整设计资料下载链接 https://download.csdn.net/download/tianqiquan/88253962 该项目的目标是设计和构建一个PC 连接替代方案,以替代低成本台式 1000 系列示波器,在性能和价格上都具有竞争力。该项目必须达到的规格是四个通道至少 100MHz&#xff0c…

Linux网络配置解析:连接世界的关键步骤

1.IP预备知识 IP最重要的信息包含:IP地址DNS网关 以下以IPV4为例说明: 11000000.10101000.00000000.00000001/24 192.168.0.1/24IP地址一般包含32位二进制地址和子网掩码 子网掩码全1位置对应的就是IP地址的网络号,全0位置对应的就是具体…

【Spatial-Temporal Action Localization(五)】论文阅读2020年

文章目录 1. Actions as Moving Points摘要和结论引言:针对痛点和贡献模型框架实验 1. Actions as Moving Points Actions as Moving Points (ECCV 2020) 摘要和结论 MovingCenter Detector (MOCdetector) 通过将动作实例视为移动点的轨迹。通过三个分支生成 tub…

混合表示人体的论文

0、致敬Xia Weihao 整理了数字人方面的重要论文和链接 网址如下: GitHub - weihaox/awesome-digital-human: A collection of resources on digital human including clothed people digitalization, virtual try-on, and other related directions.A collection …

继电器测试的应用场景和行业有哪些?

继电器是一种常见的电气元件,用于控制电路的开关和保护设备,它在许多行业和应用场景中发挥着重要的作用。继电器在电力系统中用于保护和控制电力设备,如发电机、变压器、电缆和线路。继电器测试可以确保继电器的准确性和可靠性,以…

起重机笔记 - 进阶篇(编辑中...)

1.双速葫芦 起重机在实际使用过程中,要兼顾效率和最大载重这两个因素,所以,起重机厂商会推出双速葫芦。双速葫芦的变速比,10吨的级别,最高可以达到1:10甚至更靠上。大功率的低速档用于提升高载荷负重,高速…

米小樽MiMe三店同开,应时手作的高品质米乳饮品新体验

米小樽MiMe于美丽的鹭岛厦门正式试营业。这一次的布局不可谓不大,三家门店:莲花北路、湾悦城、西堤,厦门三地同步开启,致力于为消费者带来崭新的健康饮品体验,开启潮流的「饮养」生活方式。 清新惬意的门店设计&#x…

【Overload游戏引擎分析】编辑器对象鼠标拾取原理

Overload的场景视图区有拾取鼠标功能,单击拾取物体后会显示在Inspector面板中。本文来分析鼠标拾取这个功能背后的原理。 一、OpenGL的FrameBuffer 实现鼠标拾取常用的方式有两种:渲染id到纹理、光线投射求交。Overload使用的是渲染id到纹理&#xff0c…

苹果商城(App Store)应用程序苹果ios签名进行系统怎么上架的注意事项完整教程

苹果商城(App Store)应用程序苹果ios签名进行系统怎么上架的注意事项完整教程 导语:苹果签名是保障安全和防止软件篡改的重要措施,也是苹果设备下载应用程序的必要步骤。本文将为大家提供一个详细的教程,介绍如何为应用…

机械臂运动控制,通讯的解包->运动控制->数据封包上报过程

一、协议 数据格式为小端模式,浮点数格式为IEEE754,需与上位机的PC端一致,如window系统,其它系统需要自行测试,用于传输16位、32位、float数据格式,避免只传输字节数据带来转换的繁琐及精度丢失。 二、下位…