java 类路径_Java中path和classpath的应用

摘要:记得初学java的时候,老师布置的第一个作业是用记事本写一段java程序,输出“Hello World”文字。当时费了半天劲才搞出来(天资愚笨),现在回想起来主要还是对java、javac命令及环境变量PATH、CLASSPATH不熟悉导致。现在开发java程序都用IDE工具,大多会忽略这方面的知识,一般都是配置好环境程序能运行就ok。目前jdk1.5之后的版本在安装时不用设置CLASSPATH变量,jdk1.8安装时会默认配置PATH变量。

一.PATH是什么?

1. PATH用来设置可执行文件(如:.COM、.EXE、.BAT)的搜索路径。为什么我们在DOS命令窗口任意目录下输入命令:java -version 命令被正确执行,就是因为我们配置了java的PATH环境变量,而且PATH指向了jdk安装目录下的bin目录。反之则要cd到bin目录下才可正确执行java -version命令。

2. PATH命令中的路径,超过一个以上,windows下各路径之间以一个分号“;”分割,linux下以冒号":"分隔。

二.CLASSPATH是什么?

CLASSPATH就是存放.class文件的路径,编译运行Java程序时,JRE会去该变量指定的路径中搜索所需的类(.class)文件。什么时候会用到classpath参数呢?主要用在javac和java命令中。

javac编译:如果当前你要编译的java文件中引用了其它的类,但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数。如我在目录:D:studysrcest 目录下新建Test.java文件,在D:studysrcuser目录下新建User.java文件,在Test.java文件中引入User类,代码如下:

package test;import user.User;public class Test { public static void main(String[] args) { User user=new User(); user.setName("zhang san"); user.setAge(12); System.out.println(user); }}

1、执行命令:javac d:studysrcestTest.java 或cd 到test目录下执行javac Test.java,提示“程序包user不存在”如图:

9c4a6f1b2bb79c8785f1ea020074e99d.png

2、执行命令:javac -classpath d:studysrc d:studysrcestTest.java 或者cd到test目录下执行javac -classpath d:studysrc Test.java(注意:classpath指定的路径是 d:studysrc 而不是 d:studysrcuser) 。可以看到javac命令被正确执行。如图:

ba9ada9a4960fca504718968c0ccc1e7.png

这时我们的目录下分别生成了User.class,Test.class文件,接下下来我们就可以执行java命令查看输出结果了。

java运行

1、cd到目录d:studysrcTest下执行命令:java Test 提示:“找不到或无法加载主类 Test”,如图:

3919a89e16bfd78fca8dde0245631090.png

2、java命令加上classpath参数,执行命令:java -classpath ../ test.Test,../表示上级目录,这里上级目录指的是src目录,所以在test目录下执行:java -classpath ../ test.Test 等同于在src(test的上级)目录下执行:java test.Test,执行命令的结果如图:

bfde9a4f3a9199cbf76d97018e62509a.png

小结:PATH用来设置可执行文件(如:.COM、.EXE、.BAT)的搜索路径,先在当前目录找执行程序,如果没有,再到path指定目录中去寻找。CLASSPATH就是存放.class文件的路径,当你要编译或执行的类import了其它的类,但被import类的.class文件不在当前目录下时,就需要通过-classpath来找到该类。

9f1e28868cddfd8b4a9e612d5d968910.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值