· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [访谈] 网银安全系列访谈之:惊心动魄网银故事
· [热点专题] 网银安全系列 3G上网卡巡礼
· [订阅IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 跨站脚本十二问 四步防范Conficker
· [热点] Windows 7 RC版公开下载 憾缺中文版

初学者入门:类的载入以及类是如何工作的

发布时间:2007.11.06 04:48     来源:赛迪网技术社区    作者:baocl

由于很多java初学者都对classpath和path的概念模糊,我阅读了众多书籍,相关书籍有<<java编程基础>>,<<java2技术内幕>>,<<Cisco Networking Academy Program Fundamentals of Java Programming>>希望对他们有帮助!!
  到目前为止,我们在实验室中创建的类都放在一个指定的目录下.实验指定了一个工作目录,这个目录叫做确省目录.我们创建的源文件存储在这个目录下,生成的类文件也存储在这个目录下,你在这个确省的包中工作!
  当一个源代码文件编写完后,我们通常叫他一个编译单元,每个源代码文件或编译代码的文件名都必须以.java文件名为后缀.在这个编译单元中,只能有一个public 的类的定义,但可以有一个或多个的非public类定义.当你编译源文件时,源文件的每个类都会产生一个相应的类文件(以class为后缀),java编译器和解释器负责查找,载入和解释这些类文件.
  要理解类定位的概念,你必须理解一些path 和classpath的相关重要的概念.所有的操作系统都利用变量来存储目录名,而这些目录正是用户试图载入或启动程序的时候需要查找的地方!在java运行环境中,有两个变量会影响到类文件和和JDK程序的访问,这就是path和classpath.
  术语"路径"用来表示程序查找一个文件的位置时所用到的一系列的指定的目录!比如说,在windows系统中,java编译器和java解释器的程序文件分别为javax.exe和java.exe.这两个文件通常存储在你的jdk的bin目录下,对于某些特定的平台,path变量是一个操作系统的变量,它所包含的路径指向众多的可执行文件所存在的目录.计算机上面的操作系统通过这些路径来查找需要运行的可执行文件.
  比如说,要保证操作系统能找到javac.exe和java.exe,这两个文件都在你的jdk\bin目录下,就需要添加到path 变量中去.java编译器和解释器使得变量classpath 来定位类和包.classpath变量可以获得很多条包含包的目录路径.jdk目录结构包含一些被自动来查找类的子目录,这些就是所谓的标准目录,而且这些目录就不需要定义在classpath变量中.你可以把类文件保存在这些目录中的一个,例如,jdk1.3\jre\classes就是一个能自动找到的标准目录.其中 classes是我自己新建的目录!你可以把自己的类文件放到这!
   但我建议不这样做,类文件应该通过程序员创建的目录结构来管理.
   由于创建的类大多数情况下总是存储在相互分开的目录中,classpath变量必须包含到达这些目录的路径.命令 CLASSPATH=d\javacourse\lab在操作系统级别为classpath变量赋值.
   载入类的时候,需要查找的额是确省目录和显示定义的包的目录.他的执行顺序为:
 1,在标准目录下查找文件;
 2,在当前的工作目录下查找所有的文件.在大多数的操作系统中,(.)符号表示当前的工作目录.有些书中有介绍!
 3,使用classpath变量定义的目录路径来查找文件,程序员必须在classpath变量中显示的指定他们将要查找的目录路径.
 4,在类的包声明语句所声明的包中查找文件,只在classpath变量所指定的目录下查找这些包.

   
补充:
   1,标准类有java.lang包,你部需要特别的指定这个包的位置;
   2,在当前目录(确省目录)下查找,注意是确省目录,他会在确省目录中查找所有文件的第一个!
   3,显示查找包的声明,简单的说就是我们在java语言中用import所引入的类或者说我们在classpath中用(.)所表示的当前的类.
   4,对编译器带有-classpath选项的调用提供了一个指向确省目录的类路径!
   同时也可以用-cp选项来声明一个指定的classpath以供解释器使用!!
   例如:javac -classpath.huiwu917.java
java -cp.huiwu917
注意使用编译器和-classpath选项以及-cp选项时,classpath变量可以被覆盖掉!!


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 程序人生:程序员如何提高自己的编程水平 (11-05) · 初学者入门:如何将JAVA生成可执行文件 (11-05)
· JAVA基础--Java语言异常处理的陋习展播 (11-05) · JAVA语言安全行研究--Java的反编译 (11-05)
· JDBC Error establishing socket 我的心得 (11-05) · 初学者入门:java语言中的异常处理机制 (11-05)
· JAVA基础:垃圾收集器与Java程序的性能 (11-05) · Java语言实用技巧:常用VI高级命令集锦 (11-05)
· Ajax技术:构建动态的Java应用程序分析 (11-05) · 面向Java开发人员的Ajax:Java对象序列化 (11-05)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
2009第七届中国电脑商年会直播
·创业投资系列访谈:产业..
·特别策划:视频网站系列..
·专题:网游虚拟货币新规..
专题:6月上市手机新品回顾及7月新机展望
·2009年中国电信业信息化..
·专题:把iPhone 3GS“解..
·WAPI重启国际标准进程 ..
专题:09年中盘点-联想春季打印机新品回顾
·InfoComm 2009 视听与集..
·网游背后的故事 网游服..
·[专题]联想ThinkPad T40..
BizSpark:微软为技术创业企业点燃火花
·社区活动:我的IT求知生..
·访谈:内网安全2009系列..
·安全访谈:网银安全之Sa..