什么是classpath

发布时间:2024-08-11 08:54:36 来源:君肯网

classpath 实际指的就是路径,英文翻译为 类路径

我们常常在项目中这样写:

mybatis.mapper-locations=classpath:mapper/*.xml

那么这个 classpath 指向的就是编译后的 target 文件夹下的 mapper 文件下的以 .xml 结尾的文件,spring会去扫描这些类,读取 mybatis 相关的 xml 的类。

如上图所示,在编译打包后的 target 中,根目录是 classes 这个文件夹,它就是我们要找的classpath。配置 calsspath ,比如 mybatis 对配置文件路径, xml 文件的路径,spring就会到 classes 下的该路径下去扫描。

配置classpath就是对程序资源路径的扫描。

classpath: 只能匹配一个文件(文件夹或路径) ,我们有时候也可以看到 classpath*: 的这种写法,

这个 可以指向多个符合文件路径的文件 ,在多模块程序中常常会被用到。

classpath和path的区别

使用JAVA开发或运行基于JAVA编写的程序,在安装JDK之后,一般需要配置如下几条环境变量(以Windows为例):

那么,它们的作用是什么呢?

JAVA_HOME 该变量指明了JAVA运行环境的安装路径。它和JAVA之间,除了字面相似度高外,没有什么联系。之所以配置该变量大约有三点原因:

如果确定没有应用依赖该变量,甚至可以不配置。但基于前两个优点,一般不建议这么做。

CLASSPATH 该变量指明JAVA运行环境JRE搜索 .class 文件的路径。

PATH 该变量指明操作系统查找可执行程序的路径。该变量由操作系统使用,配置 %JAVA_HOME%\bin 以便快捷访问该目录下如 java 、 javac 等命令行和其他JDK工具。

明白了这三个变量的用途,可知对于JAVA程序最重要的是 ClassPath 环境变量,因为它指明JAVA程序搜索第三方和用户自定义类的路径,如果不正确配置,JAVA程序将不能正常运行。

那么如何正确配置 ClassPath 呢?有如下四种方式:

其中第三种方式和第四种方式可独自配置单个JAVA应用而不影响其他JAVA应用,官方推荐使用第三种方式配置 ClassPath 。具体的配置方法如开篇所述,形式类似如下:

每个路径之间使用英文分号‘’进行分隔(linux环境下则使用英文冒号‘:’分隔)。这个例子中的单个路径都是文件夹,除此之外,单个路径还可以是特定的jar包和zip包路径。假如一个类文件的路径如下

如果该类位于 com.zdb 包下,那么正确设置的 ClassPath 为:

如果该类引用了如下的第三方jar包:

此时 ClassPath 为:

如果该类引用了多个第三方jar包:a.jar b.jar c.jar,此时 ClassPath 为:

也可以使用通配符‘*’表示为:

需要注意的是:

针对第二点,上一个例子在程序运行时,使用系统属性 java.class.path 获得的类路径可能为(注意abc的顺序已改变):

这个顺序对于JVM加载类颇为重要。假设特殊情况下,b.jar和c.jar中都含有同包名且同类名的一个类,那么JVM当查找到c.jar时发现该类后,将不会继续查找b.jar。如果JAVA应用依赖于jar包的加载顺序,那么需要明确指定jar包顺序,而不能使用通配符。

针对第三点, manifest 文件配置类路径和前三种方式稍有不同,形式为:

注意到,使用空格分隔各个路径而不是分号‘’或冒号‘:’。另外,当类路径过多而需要换行时,从第二行开始,必须以两个空格开头。

附:

JAVA类路径官网介绍

Manifest文件类路径说明

一个jar包加载顺序引发的BUG

java的环境变量classpath该怎么设置呢?

classpath和path的区别:意思不同、用法不同、侧重点不同

一、意思不同

什么是classpath

1.classpath意思:路径;轨道

2.path意思:n. 路线;小路;小径;轨道;路程

二、用法不同

1.classpath用法:在句中可用作定语或表语。

例句:

Add this directory to the Java classpath and the system path.

将该目录添加到Java类路径和系统路径。

2.path用法:基本意思是“小路”“小径”,常指人或牲畜走出来的路,相当于pathway或footpath,引申可指思想、行为和生活等“路线,路径,办事程序,办法”等,均用作可数名词。

例句:

We followed the path along the clifftops

我们沿着悬崖顶上的小路走。

三、侧重点不同

1.classpath侧重点:表示抽象的。

2.path侧重点:表示客观存在的。

classpath的作用

java的环境变量classpath的设置方法:

1、在我的电脑界面,鼠标右键点击“此电脑”。

2、在弹出的列表中,点击最下方的“属性”。

3、在跳转到的界面中,点击“高级系统设置”。

4、在弹出的系统属性界面,点击右下方的“环境变量”。

5、在窗口的右下方点击“新建”,创建classpath环境变量。

6、创建名为“classpath”的环境变量,在变量值中输入“ %JAVA_HOME%\lib%JAVA_HOME%\lib\tools.jar”,然后点击确定,classpath环境变量就设置好了。

CLASSPATH是什么?它的作用是什么?

它是javac编译器的一个环境变量。

它的作用与import、package关键字有关。

当写下improt java.util.*时,编译器面对import关键字时,就知道要引入java.util这个package中的类;但是编译器如何知道把这个package放在哪里了呢?所以首先得告诉编译器这个package的所在位置;如何告诉它呢?就是设置CLASSPATH啦 🙂 如果java.util这个package在c:\jdk\ 目录下,得把c:\jdk\这个路径设置到CLASSPATH中去!当编译器面对import java.util.*这个语句时,它先会查找CLASSPATH所指定的目录,并检视子目录java\util是否存在,然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!

CLASSPATH有点像c\c++编译器中的INCLUDE路径的设置哦,是不是?当c\c++编译器遇到include &ltiostream&gt这样的语句,它是如何运作的?搜索INCLUDE路径,检视文件!

当自己开发一个package时,然后想要用这个package中的类;自然,也得把这个package所在的目录设置到CLASSPATH中去!

CLASSPATH的设定,对JAVA的初学者而言是一件棘手的事。所以Sun让JAVA2的JDK更聪明一些。在安装之后,即使完全没有设定CLASSPATH,仍然能够编译基本的JAVA程序,并且加以执行。

以上就是关于什么是classpath全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

classpath 实际指的就是路径,英文翻译为 类路径 我们常常在项目中这样写: mybatis.mapper-locations=cla…
查看详情
classpath 实际指的就是路径,英文翻译为 类路径 我们常常在项目中这样写: mybatis.mapper-locations=cla…
查看详情
classpath 实际指的就是路径,英文翻译为 类路径 我们常常在项目中这样写: mybatis.mapper-locations=cla…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载