深入探究Java的classpath

今天好好研究了一下Java的classpath,什么是classpath呢?classpath就是我们输入
java xxx
的时候Java执行环境搜索xxx类文件的路径。指定这个路径有两种方式,第一种是在我的电脑里面设置环境变量classpath或在命令行里面用
set classpath=xxxxxxx

设置,这两个方法的效果是一样的所以归类为第一种(只不过在命令行里面设置的是临时的,仅对此命令窗口有效)

第二种如下:

java -cp ./b xxx
这种方式将在当前目录的b文件夹里面找到xxx.class文件并加载进来。

第一种方法有个需要注意的地方,

set classpath=xxxxxxx
set classpath=xxxxxxx;//这行多了个分号

是不一样的,第二行多了个分号,效果就是让Java执行环境先在xxxxxx目录搜索类文件然后再从当前目录搜索类文件。而没有分号就是让Java执行环境只在xxxxxx目录搜索类文件,如果xxxxxx目录没有搜索的类文件,而当前目录有这个要搜索的类文件,那么依然会报错。

总结一下,当没有在我的电脑里面设置环境变量classpath或在命令行里面用

set classpath=xxxxxxx

设置classpath,或者是没有明确指定-cp选项的时候,Java执行环境仅从当前目录搜索类文件

当两者中有一个设置(指定)时仅从设置(指定)的目录搜索类文件,而不搜索当前目录(如果两者里面没有包含当前目录的话)

若两者同时设置和指定则忽略classpath,只使用-cp选项指定的目录,而不搜索当前目录(如果两者里面没有包含当前目录的话)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值