分享
 
 
 

javac-----Java编程语言编译器

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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:\workspace\com\mysoft\mypack\MyClass.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.4\bin\javac @sourcefiles]

编译MyClass1.java,MyClass2.java,MyClass3.java

OPTIONS[选项]

javac有一系列的标准选项,这些选项被当前开发环境所支持,并且将在以后的发行版中继续被支持.一些非标准的选项为专门为当前的虚拟机和编译实现.它们将在将来改变.(非标准选项以-X开头)

Standard Options[标准选项]

1: -classpath <classpath>

设置用户类路径,覆盖在CLASSPATH环境变量中的用户类路径,如果CLASSPATH和-classpath都没有指定,用户路径将包含当前目录. (更多细节见设置路径)

如果-sourcepath选项没有指定,在用户类路径下查找类文件,也查找原文件.

2: -d <directory>

为类文件设置目标目录.如果一个类是一个package的一部分.将类文件放置到反应package名的子目录下.(如果需要,将建立目录). 例如: 如果你指定-d /home/myclasses并且类为com.mypackage.myClass,那么该类将称为 /home/myclasses/com/mypackage/MyClass.class

[ windows: -d c:\workspace, 将产生 c:\workspace\com\mypackage\MyClass.class]

如果-d没有指定,javac将类文件放置到和原文件相同的目录下

注意: 使用-d选项指定的目录不自动加到你的用户类路径中.

3: -deprecation

显示每个使用或重载的"不应再使用"的成员或类,如果没有-deprecation,javac将只显示使用了这些类或成员的原文件名.

4: -encoding

设置原文件的编码名,例如 EUCJIS/SJIS(日文编码),如果-encoding没有指定,将使用平台缺省的转换

5: -g

产生所有的调试信息,包括局部变量. 缺省情况下,调试信息只包括行号和原文件信息.(建议使用)

6: -g:none

不产生调试信息

7: -g:{keyword list}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有