「这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战」
🌊 作者主页:海拥
🌊 作者简介:🥇HDZ核心组成员、🏆全栈领域优质创作者、🥈蝉联C站周榜前十
🌊 粉丝福利:进粉丝群每周送四本书(每位都有),每月抽送各种小礼品(掘金搪瓷杯、抱枕、鼠标垫、马克杯等)
Java 虚拟机(JVM) 使用类路径来定位类文件以执行代码。如果您的类路径未设置并且类文件与您的 java 文件不在同一目录中,则 JVM 将无法找到所需的类文件,并且会抛出错误 ( java.lang.ClassNotFoundException )。
设置类路径的方法
设置类路径有五种不同的方法。他们是:
- -cp
- -类路径
- – 类路径
- 使用“set classpath”命令进行临时设置
- 使用环境变量窗口的永久设置
-cp , -- classpath , -- class-path方法的局限性在于它只能为当前命令行设置classpath,在下一个命令行中,如果我们直接访问所需的类,我们会得到一个Exception
语法:
>java -cp <目录位置> <类名>
例子:
// 此代码位于 F:\workspace\src
// 它的类文件位于 F:\workspace\bin
class GFG {
public static void main(String[] args)
{
System.out.println("GFG!");
}
}
命令行设置 –
>java -cp <目录位置> <类名>
或者
>java -classpath <directory_location> <类名>
或者
>java --class-path <目录位置> <类名>
- 如果我们想访问所有命令行的类路径,我们必须设置类路径命令选项。
- “set classpath” 命令选项的限制是类路径设置仅适用于当前命令提示符。
临时设置:
>set classpath=<directory_location>
如果我们想为所有命令提示符永久设置类路径,我们必须在环境变量部分设置类路径。
永久设置:
- 首先,右键单击“此PC”。
- 单击属性。
- 点击“高级系统设置”。
- 单击“环境变量”。
- 在“用户变量部分”中,单击“新建”按钮。
- 输入变量名:classpath [不要在类路径之间留空格] 变量值:<directory_location>(例如在我的 F:\workspace\bin 中)
- 单击确定->确定->确定。
- 关闭所有窗口,打开一个新的命令提示符,然后运行 java 命令
环境变量设置
必须包括 .; 在类路径开头,以便JVM可以分别访问当前工作目录和所需类文件的目录。
>java -cp <.;directory_location> <类名>
'.' 在类路径中的重要性
如果我们将 classpath 设置为指向一个目录,如果我们不放置(点),则编译器和JVM将找不到当前工作目录中可用的类。 '.' 代表当前工作目录。当前工作目录不是保存 .java 文件的文件夹,而是打开命令提示符的文件夹路径。
在类路径中包含多个路径的语法
我们必须用分号分隔符分隔每个文件夹位置。
java -cp ./folder1/*;./folder2/*;./folder3/* com.xyz.MainClass
注 –编译器和 JVM 从类路径中查找类所遵循的算法是先来先执行。
路径和类路径搜索算法优先级的区别
- 命令提示软件会优先显示工作目录。在当前工作目录下,如果二进制文件不可用,只考虑路径变量。
- 编译器和JVM首先查找类路径。
- 如果未创建类路径,则只有它们会在当前工作目录中搜索。
- 如果创建了类路径,他们不会查看当前工作目录,只会查看类路径文件夹。
注意—— 一般开发者社区推荐前4种类型,尽量避免使用环境变量window的永久设置。
写在最后的
作者立志打造一个拥有100个小游戏的摸鱼网站,更新进度:40/100
我已经写了很长一段时间的技术博客,并且主要通过掘金发表,这是我的一篇关于在 Java 中设置类路径的不同方法 。我喜欢通过文章分享技术与快乐。你可以访问我的博客: juejin.cn/user/204034… 以了解更多信息。希望你们会喜欢!😊
💌 欢迎大家在评论区提出意见和建议!💌