CLASSPATH环境属性 | 学习笔记

简介: 快速学习CLASSPATH环境属性

开发者学堂课程【Java编程入门CLASSPATH环境属性】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/18


CLASSPATH环境属性

目录:

1.CLASSPATH的概念

2.CLASSPATH的环境属性

3.添加“.”环境变量

4.PATHCLASSPATH的区别

1CLASSPATH的概念

CLASSPATH如果要完整的进行解释需要好多知识,所以本次只是对CLASSPATH的概念做一个先期的介绍。

假设在d:\mldnjava目录下提供一个Hello.classde 字节码文件:

image.png

假设当前用户所在的目录为“d:\mldnjava”,这样的情况下直接使用java命令进行Hello.class字节码文件解释:

image.png

如果说现在脱离了这个目录,将当前目录修改了“C:\”(C盘目录下并没有Hello.class字节码文件),如果再次执行程序并解释,这个时候会出现以下错误提示信息:

因为从1.6版本之后,都是多国语言版它会根据你当前的语言系统环境显示中文或英文。1.8版本只能看见前面一部分,1.9版本才可以看见后面一部分。

image.png

2.CLASSPATH的环境属性

出现ClassNotFoundException原因?

当前目录中没有字节码,那么现在的需求就是:可以在不用的目录中都执行

d:\mldnjava\Hello.class文件。所以在这样一个处理要求下只能够依靠CLASSPATH环境属性来完成。

范例:定义CLASSPATH环境属性。

image.png

SET CLASSPATH=d:\mldnjava

执行代码程序

image.png

3.添加“.”环境变量

当设置了CLASSPATH之后,在java程序解释的时候会自动的通过CLASSPATH所设置的路径进行类的加载,所以可以得出一个结论:JVM解释程序的时候需要得到CLASSPATH的支持。但是有一个问题,发现默认情况下所有解释的类都是从当前所在的目录中加载的,所以可以得出一个结论CLASSPATH的默认设置韦当前所在目录加载类文件。很明显如果到出去设置CLASSPATH就会造成整个操作系统的混乱,那么从正常的角度来讲,对于CLASSPATH来说还是应该采用默认设置方式,所以如果这个时候要想只通过当前目录加载,则可以将CLASSPATH设置为“.”。

范例:从当前所在路径加载类SET CLASSPATH=.

image.png

如果你安装了一些与Java开发程序软件的时候,它有可能会自动的修改默认的CLASSPATH,这个“.”配置会消失。这种情况下就必修利用命令自己重新设置回来。需要注意的是,现在的CLASSPATH是在一个命令行下的配置,如果该命令行关闭了,那么相关的属性配置也将消失,所以做好将其配置为全局属性,则可以直接在系统中追加有一个属性信息。

image.png

4.PATH和CLASSPTH区别

面试题:请问PATH和CLASSPTH区别?

PATH:是操作系统提供的路径配置,定义所有可执行程序的路径;

CLASSPATH:是由JRE提供的,用于定义Java程序解释时类加载路径,默认设置的韦当前所在目录加载,可以“SET=CLASSPATH=路径”的命令形式来进行定义;

|-关系:JVM →CLASSPATH的定义的路径→加载字节码文件。

相关文章
|
开发工具 git 应用服务中间件
超简单!基于计算巢SaaS Boost快速售卖你的软件
通过计算巢开源项目SaaS Boost售卖你的软件使用流程
超简单!基于计算巢SaaS Boost快速售卖你的软件
|
测试技术 微服务 负载均衡
微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。 目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。
3171 0
|
Python
【python脚本】word批注批量提取器V2实用版
【python脚本】word批注批量提取器V2实用版
310 0
|
安全 调度 数据安全/隐私保护
操作系统概述
操作系统是计算机系统中的核心软件之一,它是管理和控制计算机硬件和软件资源的系统软件。操作系统提供了一个统一的接口,使得用户和应用程序可以方便地与计算机系统进行交互。下面将详细介绍操作系统的概述及其功能。 1. 定义:操作系统是一种系统软件,它是计算机系统中的核心组成部分,负责管理和控制计算机硬件和软件资源,为用户和应用程序提供一个统一的接口。 2. 功能:操作系统具有多种功能,包括进程管理、内存管理、文件系统管理、设备管理和用户界面等。 - 进程管理:操作系统负责创建、调度和终止进程,为进程分配资源,控制进程的执行和通信。 - 内存管理:操作系统负责管理计算机的内存资源,包
222 0
|
9月前
|
运维 Kubernetes Cloud Native
什么是云原生?
云原生(Cloud Native)是一种充分利用云计算弹性和自动化能力的架构理念,核心思想包括以云为中心、模块化与松耦合、自动化运维及弹性容错。其关键技术涵盖容器化(如Docker)、编排调度(如Kubernetes)、微服务和DevOps等。相比传统架构,云原生具备敏捷性、弹性伸缩、高可用性和资源优化等优势,适用于互联网高并发业务、AI/大数据平台及企业转型场景。然而,落地面临技术复杂度高、组织文化转型及安全合规挑战。未来发展趋势包括混合多云管理、智能化运维及WebAssembly等轻量化技术。Gartner预测,到2025年超95%新应用将采用云原生模式开发。
3293 3
|
移动开发 前端开发 Android开发
【Uniapp 专栏】Uniapp 相较于其他跨平台框架的优势
【5月更文挑战第15天】Uniapp 是一款高效率的跨平台框架,一套代码可生成 iOS、Android、H5 等应用,减少重复工作。它具有强大兼容性,保证各平台稳定运行,提供一致体验。Uniapp 社区活跃,资源丰富,学习曲线平缓,适合新手。性能优化出色,可扩展性强,全面支持前端技术,降低开发和维护成本。因此,Uniapp 成为跨平台开发的热门选择。
542 0
【Uniapp 专栏】Uniapp 相较于其他跨平台框架的优势
|
11月前
|
设计模式 关系型数据库
「全网最细 + 实战源码案例」设计模式——简单工厂模式
简单工厂模式是一种创建型设计模式,通过工厂类根据传入参数创建不同类型的对象,也称“静态工厂方法”模式。其结构包括工厂类、产品接口和具体产品类。优点是封装性强、代码复用性好;缺点是扩展性差,增加新产品时需修改工厂类代码,违反开闭原则。适用于对象种类较少且调用者无需关心创建细节的场景。
252 19
|
数据库
脏读,幻读,不可重复读
脏读,幻读,不可重复读
516 2
|
存储 Apache 开发工具
LabVIEW与TortoiseSVN进行源代码控制
LabVIEW与TortoiseSVN进行源代码控制
268 0