关于java的classpath问题的总结
1.如果编译(javac.exe)或者运行(java.exe)时没有使用-CP或者-CLASSPATH参数,
那么编译或者运行所使用到的所有类必须在系统的环境变量CLASSPATH所指定的
路径或者JAR/ZIP文件中能够找到.
2.如果编译(javac.exe)或者运行(java.exe)时使用-CP或者-CLASSPATH参数,那么系统
的环境变量CLASSPATH将不起作用,JAVAC或者JAVA将转到-CP或者-CLASSPATH参数
指定的路径或JAR/ZIP文件中查找所需的类.除非-CP或者-CLASSPATH也引用系统的环境
变量CLASSPATH,例如:
javac -cp %CLASSPATH%;d:/mylib MyClass.java
3.CLASSPATH设置到包的包就可以了.例如com.buaa.bbs.HelloWorld类,它的class文件
的绝对路径d:/myproject/lib/com/buaa/bbs/HelloWorld.class,为了能够找到这个类,
只需要使classpath包括目录d:/myproject/lib就可以了.
4.如果类被压缩在JAR或者ZIP文件中,classpath必须包括该文件的访问绝对路径,而不是
该文件所在的目录.例如swing.jar存储在d:/swing/jars目录下,那么需要将
d:/swing/jars/swing.jar
包括在classpath中,而不是d:/swing/jars.
5.不要忘记了将当前路径包括在classpath下.因为我们在编写一些小例子的时候,我们
一般在当前路径下编译或者运行.例如可以在AUTOEXEC.BAT中:
set CLASSPATH=.;d:/lib;e:/jdk1.2.2
一句话,要么在系统的CLASSPATH中设置,要么用-CP/-CLASSPATH参数设置,一定要让
编译器或者虚机找到需要的类.
那么编译或者运行所使用到的所有类必须在系统的环境变量CLASSPATH所指定的
路径或者JAR/ZIP文件中能够找到.
2.如果编译(javac.exe)或者运行(java.exe)时使用-CP或者-CLASSPATH参数,那么系统
的环境变量CLASSPATH将不起作用,JAVAC或者JAVA将转到-CP或者-CLASSPATH参数
指定的路径或JAR/ZIP文件中查找所需的类.除非-CP或者-CLASSPATH也引用系统的环境
变量CLASSPATH,例如:
javac -cp %CLASSPATH%;d:/mylib MyClass.java
3.CLASSPATH设置到包的包就可以了.例如com.buaa.bbs.HelloWorld类,它的class文件
的绝对路径d:/myproject/lib/com/buaa/bbs/HelloWorld.class,为了能够找到这个类,
只需要使classpath包括目录d:/myproject/lib就可以了.
4.如果类被压缩在JAR或者ZIP文件中,classpath必须包括该文件的访问绝对路径,而不是
该文件所在的目录.例如swing.jar存储在d:/swing/jars目录下,那么需要将
d:/swing/jars/swing.jar
包括在classpath中,而不是d:/swing/jars.
5.不要忘记了将当前路径包括在classpath下.因为我们在编写一些小例子的时候,我们
一般在当前路径下编译或者运行.例如可以在AUTOEXEC.BAT中:
set CLASSPATH=.;d:/lib;e:/jdk1.2.2
一句话,要么在系统的CLASSPATH中设置,要么用-CP/-CLASSPATH参数设置,一定要让
编译器或者虚机找到需要的类.