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的定义的路径→加载字节码文件。

相关文章
|
SQL 关系型数据库 MySQL
Mac下安装hive
Mac下安装hive
955 0
|
安全 Linux 网络安全
Linux一些防火墙实战知识
本文介绍了如何在Linux中设置防火墙和开放端口,以提高服务器的安全性。首先,使用firewalld作为防火墙软件包,并确保firewalld服务正在运行。然后,通过添加服务来定义允许的服务端口,可以使用firewall-cmd命令查看当前已定义的服务,并使用firewall-cmd命令添加服务。添加规则后,需要重新加载firewalld配置以使更改生效。在某些情况下,需要打开特定的端口,例如HTTP端口80和HTTPS端口443。可以使用firewall-cmd命令打开端口,并将规则添加到相应的区域。。。确实都是工作中日常中会用到的一些命令
|
10月前
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
1534 13
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
|
网络协议 Unix Linux
网安人必须人手一份的《Linux私房教程》,GitHub星标286K!
Linux是一套免费使用和自由传播的操作系统内核,是一个基于POSIX和Unix的多用户、多任务支持多线程和多CPU的操作系统内核。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统内核。 作为网络安全的初学者,Linux基础知识和常用命令是我们的必备技能,我们不能只会操作Windows相关的工具。一方面很多网站都是基于Linux环境搭建,比如LAMP,其安全性更好;另一方面,很多命令或工具都集成在了Linux相关环境中,比如Kali等。 今天给小伙伴们分享一份Linux私房教程,这份
|
安全 调度 虚拟化
探索现代操作系统的架构与优化
本文将深入探讨现代操作系统的核心架构和优化技术。从操作系统的基本定义入手,逐步解析其内核结构、进程管理、内存管理和I/O系统。同时,还将讨论现代操作系统在多核处理器支持、虚拟化技术和安全性方面的创新与优化措施。通过这些内容,读者可以全面了解操作系统的工作原理及其在实际应用中的表现与改进。
|
Ubuntu jenkins 测试技术
软件测试中的自动化与持续集成实践
【9月更文挑战第15天】在软件开发的快节奏世界中,自动化测试和持续集成(CI)已成为确保质量和效率的关键策略。本文旨在揭示如何通过实施自动化测试框架和CI流程来优化开发周期,减少人为错误,并加快产品上市时间。我们将探讨一些实用的工具和技术,以及它们如何帮助团队实现更流畅、更可靠的软件发布。
|
Web App开发 前端开发 iOS开发
css3
css3
102 4
|
Java 容器 安全
ReentrantLock详解
本博客主要讲述ReentrantLock的实现原理,主要内容包括: AQS原理以及实现过程。 ReenetrantLock获取锁、释放锁流程,以及原理。 ReenetrantLock源码分析。
6415 1
|
Java Windows
Jmeter安装使用(附下载文件和TPS工具)
Jmeter安装使用(附下载文件和TPS工具)
1202 1
|
存储 编解码 关系型数据库
全院级医学影像PACS系统源码 影像归档和通信系统源码
系统主要进行病人信息和影像的获取、处理、存储、调阅、检索、管理,并通过网络向全院提供病人检查影像及诊断报告;各影像科室之间共享不同设备的病人检查影像及诊断报告;在诊断工作站上,调阅HIS中病人的其它信息(如:病人信息、病历信息、医嘱、检验信息等)。
260 1
全院级医学影像PACS系统源码  影像归档和通信系统源码