关于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的解释,算是学习的一次总结,也请各位朋友指出错误和不足
小弟不胜感激