|
关于java中classpath的配置 classpath从名字上看是类的路径的意思,也就是java程序在运行时装载类的路径,java不同于c或c++等编译形语言,在运行前就要完成编译,连接等过程,java是在运行时装载所需要的类。 classpath的值可以从命令行中输入 echo %classpath%来查看,也可以从"我的电脑"-->"属性"-->"高级"-->"环境变量"-->"系统变量"中查看(不同的windows版本中名称可能不一样,如xp中的 "我的电脑" 在windows7中更名为"计算机"),classpath与path的查看方式是一样的(设置方法也差不多) 编辑两个java源文件,将它们放在d盘的根目录下 Demo.java import com.demo.AirPlane; public class Demo { public static void main(String [] args){ System.out.println("导弹发射"); AirPlane airPlane = new AirPlane(); airPlane.fly(); System.out.println("打中飞机"); } }
AirPlane.java package com.demo; public class AirPlane { public void fly(){ System.out.println("飞机起飞..."); } } 首先我们不配置classpath,打开命令行窗口,切换到d盘的根目录下,首先编译AirPlane.java: 执行javac AirPlane.java 然后将生成的class文件放到d:/com/demo目录下,然后编译Demo.java: 执行javac Demo.java 然后我们运行java Demo效果如图1:

图1 好,现在我们将AirPlane.class连同com/demo这个目录移动到其他盘符下,如e盘,我们再来执行 java Demo.java效果如图2,杯具了...主调程序在发射完导弹后,找不到飞机...

图2
现在必须在导弹上安装classpath精确制导系统了,在系统变量下建立一个名叫classpath的环境变量 在其值中加入E:/确定保存;我们再来运行一次(注意,这次我们要重新打开一个命令行窗口,因为环境变量的 改变后,在旧的窗口是不生效的,不信你echo一下试试)效果如图3:恩,飞机打的爽吧...

图3 这是为什么呢?因为java在运行时会默认在当前目录下寻找所需要的class文件,如果没有找到,则会沿着 classpath去寻找,如果找到了,ok,运行成功,如果仍然没有找到,sorry,无法运行,虽然会默认的在当前 目录下寻找class文件,不过还是建议在classpath值的最前面加入".;",其中"."代表当前目录,如 classpath=.;E:/。这种classpath的设置是最简单的情况,classpath的值可以根据应用的需要添加,如 安装了tomcat后,要想运行javaEE应用,一般需要在classpath中加入%tomcat_home%/common/lib/servlet-api.jar和 %tomcat_home%/common/lib/jsp-api这两个jar包,其中tomcat_home的意思和java_home一样,为tomcat的解压路径
不过新的java版本好像比较牛叉了,classpath即使不设置,在运行时也能找得到需要的class文件。 其实,本人java菜鸟一个,以上关于path和classpath的解释,算是学习的一次总结,也请各位朋友指出错误和不足 小弟不胜感激 |