最近第一次写BLOG,水平有限,希望能对新手有点启发,如果有错,希望大家能不吝指正!
详情见:http://blog.csdn.net/Tomcat4/1. JDK的安装(Windows2000/xp)    从java.sun.com上下载JDK后直接双击进行安装。建议不使用默认安装路径c:\prgram files\...,因为这个太长了,在后面配置PATH等环境变量要麻烦一点。我一般把它安装到D:\JDK目录下。2. 配置   其实Java的配置主要就是两个环境变量(PATH,CLASSPATH)的设置,初学者可能因为对于这两个环境变量的原理不了解,导致初学时走了很多弯路,我在这里尽可能的从原理上来解释配置的过程。在介绍两个环境变量(PATH,CLASSPATH)的设置之前,我们先看一下Java程序的原型过程和原理。 (1)Java实际上是一种编译和解释相结合的一门语言,其源码(*.java)首先被编译成字节码的二进制文件(*.class),我们可以在DOS使用下面的命令完成编译(假设源文件名为A.java):          c:\>javac  A.java  这个命令如果正确运行的话,会生成一个A.class文件,此时我们使用Java的解释器来解释执行这个字节码文件,命令如下:        c:\>Java A    当然,如果我们没有配置PATH变量之前,上述两个命令一般是不能正确运行的,你的OS会提示:Javac不是内部命令,也不是外部命令...。这是因为你的Javac.exe和Javax.exe是在d:\jdk\bin目录下,而OS无法在你的当前目录(c:根目录)下找到这个命令。环境变量PATH就是为了让你能在任意路径下找到你的Javac.exe和Java.exe,所以PATH应该设置到哪儿也就很简单了——当然是Javac.exe和Java.exe所在的路径(d:\jdk\bin)。   在这个命令中c:\>Java A,如果说PATH是为了你的OS能准确找到Java这个解释工具的话,那么CLASSPATH的作用就是引导OS能够正确的加载你的字节码文件——类A。说到这里又要插到JVM的类加载原理了,JVM在首次使用到某个类时,需要将这个类从硬盘加载到内存。我们必须对刚才所说的话作一下更正:那么CLASSPATH的作用就是引导OS能够正确的加载你的字节码文件.将OS改为JVM.      实际上在JDK1.2以后JVM的类加载器(CLASSLOADER)分为两部分,一个叫做启动加载器,负责加载Java的核心API(就是哪些以java.开头的包),另外一个叫做系统加载器,负责加载非核心类(比如你自己写的类)。以前 的一些书上的CLASSPATH的配置可能是这样的CLASSPATH: d:\jdk\lib\dt.jar; d:\jdk\lib\tools.jar,实际上在Jdk1.2以后这些都不用配置了(至少我没配置,System.out.println()能运行),我想可能是因为这些包里的类有启动加载器加载,而启动加载器加载类的根路径不是有CLASSPATH指引,而是有注册表中的Java_Home键(JDK安装时写入注册表的)指引(呵呵,这里是我猜的,没找到官方文档)。那么我们还要配置我们的CLASSPATH吗?一般是要的,不要忘了,你自己写的类仍然是需要CLASSPATH来引导JVM加载。我以前学Java的时候会把写的源文件放在一个文件夹下,比如d:\src,然后编译后的class文件放到d:\classes下面。你可以用javac的-d命令参数,比如javac -d d:\classes A.java将类直接编译到d:\classes 目录下(实际上JBuilder,Jcreater里工程树形中的Output Path就是这个参数),如果你类里面定义了包的话(比如 package a.b;),就会在d:\classes 生成相应的文件夹(文件夹a及其下面的子文件夹b).这个时候可以将CLASSPATH设置到我的类文件的保存路径d:\classes ,这样以后我在DOS下解释执行的时候就不会出现著名的NoClassDefFoundError了。 (2)关于包的使用       刚才我们说到了假设A.java里有包的定义:package a.b;正确编译后会在d:\classes下面生成文件夹和类:a\b\A.class,因为我们的CLASSPATH只设置到d:\classes,而你的A.class并不存在于d:\classes,所以你运行java A荏苒会出错,正确的写法是java a.b.A,,即带上包名和类名(有的书上说全限定名),只有这样才能正确运行你的程序。我们不难总结:JVM靠CLASSPATH和类的全限定名二者结合来找到并加载一个类。