秒懂java类路径

都知道java程序的启动方式为:

java -cp 类路径 全限定的类名 参数1 参数2 参数3


在上面的调用中,初学者可能会在两个地方掉进坑中:

1.java命令:在windows上,它是没有显示地写上exe后缀的可执行程序。大家都知道在计算机中,要指明一个文件,仅文件名是不够的,而是需要完整的路径才能唯一的定位它。但此处为什么可以只写一个程序名字?只是因为java安装目录下面的bin目录被加到了系统的path环境变量中,而这个添加操作通常是在安装JRE时自动完成的。如果bin目录没有被添加到path环境变量中(这种情况可能出现在随便的手动拷贝jre目录的时候),则此处就要写完整了,例如:C:\Program Files (x86)\Java\jre1.8.0_121\bin\java -cp ……

2.-cp选项:用于罗列类路径的位置,它是-classpath的缩写。

类路径的作用是告诉java虚拟机从哪些地方查找类。

下面重点讲一下类路径的要点:

1.类路径中可以指定三种位置:文件夹、jar文件、zip文件;

2.-cp或者-classpath可以指定多个位置,在windows上是用分号隔开,在linux上是用冒号隔开。例如在linux上:-cp dir1:dir2:dir3,此处指定了3个目录作为类查找路径。

3.如果没有明确的指定类路径,则默认是当前工作路径,注意当前工作路径是一个文件夹,因此如果当前工作路径下面有个jar文件,jar文件中的类是不会被找到的。记住文件夹与jar各是各。

4.如果通过-cp或者-classpath选项指定了类路径,则当前工作路径就不会再包含进类路径中了。此时如果仍然需要将当前工作路径纳入类路径,需要通过点号再加回来。例如:-cp .:dir1,此处表示在linux上当前工作目录和dir1目录都是类路径;

5.指定jar文件的示例:-cp main.jar。指定zip文件也可以,此处不再演示。

6.关于通配符的使用:

a.通配符只是用来匹配jar的,不能用来匹配类文件或者目录。

b.通配符不递归匹配;

c.如果目录dir下面有6个jar都要作为类路径,传统的可以写成:-cp test1.jar:test2.jar:test3.jar:test4.jar:test5.jar:test6.jar,有没有发现很麻烦,其实用通配符写起来简单多了:-cp *,此时如果当前目录也要作为类路径,可写成:-cp .:*,冒号是linux上的路径分隔符;

d.有没有发现,通配符只是减少了在指定类路径时罗列jar麻烦。


7.还可以通过CLASSPATH环境变量指定类路径,但是不到万不得已,不要这样用。显然的,如果配置到环境变量中去了,则系统中所有的java程序都会相互影响,那就不妙了。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值