Java jdk7学习笔记:管理原始码与位码文档
来源:互联网 发布:淘宝网广场舞高帮鞋 编辑:程序博客网 时间:2024/05/22 14:01
来观察一下目前你的C:\workspace,原始码(.java)文档与位码文档(.class)都放在一起,想象一下,如果程序规模稍大,一堆.java与.class文档还放在一起,会有多么混乱,你需要有效率地管理原始码与位码文档。
编译程序(javac)与SOURCEPATH
首先必须解决原始码文档与位码文档都放在一起的问题。请将光盘中labs文件夹的Hello1文件夹复制至C:\workspace中,Hello1文件夹中有src与classes文件夹,src文件夹中有Console.java与Main.java两个文档,其中Console.java就是2.1.4节中Console类的原始码(目前你不用关心它如何撰写),而Main.java的内容与图2.14相同。
简单地说,src文件夹将用来放置原始码文档,而编译好的位码文档,希望能指定存放至classes文件夹。可以在“命令提示符”模式下,切换至Hello1文件夹,然后进行编译,如图2.18所示。
编译时指定-verbose
就初学者而言,最主要看看圈住的部分,在编译时,会先搜索-sourcepath指定的文件夹(上例指定src)是不是有使用到的类原始码,然后会搜索CLASSPATH中,是否有已编译的类位码。你可以发现,其实默认搜索位码的路径包括许多默认的JAR文档,像是rt.jar等,留意最后那个“.”,由于没有指定-classpath(-cp),默认会搜索目前路径。
确认原始码与位码搜索路径之后,接着检查CLASSPATH中是否已经有编译完成的Main类,如果存在且从上次编译后,Main类的原始码并没有改变,则无须重新编译,如果不存在,则重新编译Main类。就上例而言,由于CLASSPATH并不包括classes文件夹,所以找不到Main类位码,因此重新编译出Main.class并存放至classes中。
接着检查CLASSPATH中是否已经有编译完成的Console类,如果存在且从上次编译后,Console类的原始码并没有改变,则无须重新编译,如果不存在,则重新编译Console类。就上例而言,由于CLASSPATH并不包括classes文件夹,所以找不到Console类位码,因此重新编译出Console.class并存放至classes中。
实际项目中会有数以万计的类,如果每次都要重新将.java编译为.class,那会是非常费时的工作,所以编译时若类路径中已存在位码,且上次编译后,原始码并没有修改,无须重新编译会比较节省时间。因此,就上例而言,应该指定-cp为classes,如图2.21所示。
JVM默认的类搜索路径,也就是那些JAR文档的搜索路径,其实与类加载器有关,这是个进阶议题,第15章会加以讨论。
互动网:http://product.china-pub.com/199212
当当网:http://product.dangdang.com/product.aspx?product_id=22643687
作者: 林信良
出版社:清华大学出版社
ISBN:9787302282082
上架时间:2012-4-1
出版日期:2012 年4月
开本:16开页码:562
版次:1-1
- Java jdk7学习笔记:管理原始码与位码文档
- 第二天03 管理原始码与位码文档(学习笔记)
- 第三天01 管理原始码与位码文档(学习笔记)
- java JDK7 学习笔记:撰写Java原始码
- java jdk7学习笔记:InputStream与OutputStream
- java jdk7学习笔记:InputStream与OutputStream
- Java jdk7学习笔记
- java jdk7学习笔记:继承与多态
- java基础学习笔记原始类型变量赋值与非原始变量赋值
- 第一天01 JAVA JDK7(学习笔记)
- 《Java与模式》学习笔记之八---原始模型模式(Prototype Pattern)
- jdk7新特性学习笔记
- java学习笔记(一)----位运算符与逻辑运算符
- JAVA学习笔记-位运算
- Java菜鸟学习笔记--配置篇(三):Java API 文档下载与文档注释的使用
- 《java与模式》学习系列——原始模型模式
- Python学习笔记-原始字符串
- (13)Java笔记之JDK7特性简述
- n皇后
- Java 反射机制
- CodeSmith Professional 5与VS2010有冲突
- Slide Show: 10 SQL Injection Tools For Database Pwnage
- android--context和intentFilter
- Java jdk7学习笔记:管理原始码与位码文档
- UIScrollView 原理(转载)
- EXT 做布局设置的一点经验
- java 中的剪切板
- Oracle 删除用户和表空间
- BufferedInputStream和BufferedOutputStream
- poj 2698 八皇后问题
- 时间管理---规律你的生活
- 你做过的最有效的提高编程水平的一件事情是什么