JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--JAVA实例  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
javac-----Java编程语言编译器
作者:     文章来源:
访问次数:13次     加入时间:2007年04月03日
javac-----Java编程语言编译器


*提要
*说明
*查找类型
*文件列表

SYNOPSIS[提要]
javac [options] [sourcefiles] [@files]
oldjavac [options] [soucefiles] [@files]
参数可疑位任意顺序
options
命令行选项
sourcefiles
一个或多个原文件
@files
一个或多个列有原文件列表的文件

DESCRIPTION[说明]
javac工具读由java编程语言编写的类(class)和接口(interface)的定义,并将它们编译成字节代码的class文件
有两种将原文件名传递给javac的方法
* 文件数量教少,可简单将文件名列在命令行上
* 文件数量较多,将文件名列在一个文件中,文件名用空格(包括tab)或换行隔开.将该文件前加"@"字符后,使用javac编译

原文件必须有.java后缀名,类(class)文件必须以.class为后缀名.原文件和类文件必须有定位该类的根文件名(即,去掉后缀的文件名).例如: 一个命名为MyClass的的类,原文件名应为MyClass.java,该原文件将被编译成字节代码的名为MyClass.class的类文件.

嵌套类(inner class)的定义将产生附加的类文件.这些类文件的文件名由外部类名(outer class names)和嵌套类名合并而成. 例如, MyClass$MyInnerClass.class

你应该将原文件放置在能反应它们package tree的目录下.例如,如果你将所有的原文件放置在/workspace目录下,com.mysoft.mypack.MyClass类的原文件(即 .java文件)应该为/workspace/com/mysoft/mypack/MyClass.java
[对Windows: 以上应为.例如你将所有的原文件放置在c:workspace目录下,com.mysoft.mypack.MyClass类的原文件应为c:workspacecommysoftmypackMyClass.java ]

缺省情况下,编译器将把类文件(.class文件)放置到和原文件(.java)相同的目录下.你可以通过使用-d选项指定目标目录(见选项的说明)

查找类型
当编译一个文件时,编译器通常需要关于它暂时无法鉴别的类型的信息. 编译器需要每一个在文件中使用的,extened或implemented的类或接口的类型信息. 它包括在文件中没有明显提级的,但是有可能通过继承来提供信息的类或接口.
例如: 当你继承java.applet.Applet,你同时也使用了Applet类的祖先:java.awt.Panel,
java.awt.Container,java.awt.Component和java.awt.Object.
当编译器需要类型信息时,它寻找定义了类型信息的原文件或类文件.编译器首先寻找boottrap和extension类(这些除非你使用编译器选项,否则不需要关心),接着查找用户的类路径,用户的类路径通过CLASSPATH环境变量或使用命令行选项-classpath来定义.(细节,请看*设置Class Path*),如果使用-sourcepath命令行选项,编译器将在该路径下查找原文件,否则编译器将在用户类路径下同时查找类文件和原文件. 你可以通过使用-bootclasspath和-extdirs命令行选项来设置不同的bootstrap和extension类;见下面的Cross-Compilation options

一次成功的查找将找到一个类文件,原文件或两者.下面是javac如何处理每一种情况
*查找找到一个类文件(.class文件)但无原文件(.java文件): javac使用了类文件
*查找找到一个原文件但无类文件: javac将编译该原文件,然后使用生成的类文件
*查找找到两者: javac判断类文件是否过期.如果类文件过期,javac将重新编译原文件并将使用更新后的类文件.否则,javac将使用该类文件(没有过期)
缺省情况下,javac通过比较原文件和类文件的更改日期来判断类文件是否过期.( -Xdepend选项提供了一个慢一些,但是更可靠的方法)

主意: javac将默默(不输出信息)地:-)编译那些没有在命令行上指定的文件.使用-verbose选项可以来跟踪自动编译过程.

[FILELIST]文件列表
为使javac的命令行短小或更简单,你可以指定一个或多个文件,这些文件每行含有一个文件名.在命令行,在这些文件前使用'@'字符来指定它们是文件列表.当javac遇到一个的名开头为"@",它将认为在该文件中的文件名为需要处理的文件的名子
例如: 你可以将所有的原文件列在一个名为sourcefile的文件中.这个文件可能如此:

MyClass1.java
MyClass2.java
MyClass3.java
你可以通过
% javac @sourcefiles
[ windows: c:jdk1.4injavac @sourcefiles]
编译MyClass1.java,MyClass2.java,MyClass3.java

OPTIONS[选项]
javac有一系列的标准选项,这些选项被当前开发环境所支持,并且将在以后的发行版中继续被支持.一些非标准的选项为专门为当前的虚拟机和编译实现.它们将在将来改变.(非标准选项以-X开头)
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号