安装JAVA程序的过程_Java的安装、配置和运行的基本过程及其原理!

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和类的全限定名二者结合来找到并加载一个类。

这是我的第一个BLOG, 写得很乱,希望写得不是很烂!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值