环境:windows jdk6
1.下载jdk6(最新版本6u10)
2.在Path环境变量中添加:C:/Program Files/Java/jdk1.6.0_10/bin;
3.设置classpath=C:/Program Files/Java/jdk1.6.0_10/lib
4.随便到哪个目录下写一个Welcome.java
public class Welcome
{
public static void main(String[] args)
{
System.out.println("sss");
}
}
注意文件名和类名必须一样,包括大小写。
5.在cmd中定位到该目录,编译该文件:javac welcome.java
6.把编译生成的Welcome.class拷到C:/Program Files/Java/jdk1.6.0_10/lib目录下(还有没有其它办法呢?如果不拷过去会提示找不到Welcome类和基本的一些类)
7.cmd中运行:java Welcome (切记这里大小写要和类名一致)
看到了输出sss就OK了。
========
改进:
大家也都看到了,以上第6步很麻烦,不拷到lib目录下,运行时会找不到Welcome.class,也就是说“java”这个命令会自动到lib目录下去找Welcome这个类文件,知道这个原理就好办了,于是改一个classpath:在classpath中再添加 .; (半角的句号和分号),半角的句号表示当前目录。这样,似乎原理是这样的:运行java Welcome的时候,java运行时会优先到当前目录找Welcome.class,找不到再去lib中找(Welcome类中引用的其它那些基本类是这样一个顺序)。
经过测试,原理的确是这样的:java运行时会按照你在classpath中输入的两个路径的先后顺序设定优先级别,然后根据该优先顺序去找要运行的类文件。
测试用例:
public class Welcome
{
public static void main(String[] args)
{
System.out.println("in lib");
}
}
将上面这个类编译好后放到lib目录中,然后将输出改成System.out.println("in d:");,编译生成类放到当前目录,比如说d盘。
然后在d盘,运行java Welcome
1.如果classpath是这样设置:.;C:/Program Files/Java/jdk1.6.0_10/lib ,则会输出in d:
2.如果classpath是这样设置:C:/Program Files/Java/jdk1.6.0_10/lib;. ,则会输出in lib
(提示:改完环境变量后请一定记得退出cmd,重新进入cmd后才能使设置的classpath生效 :))