|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.编程|编译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的类文件.
嵌套类(innerclass)的界说将发生附加的类文件.这些类文件的文件名由内部类名(outerclassnames)和嵌套类名兼并而成.比方,MyClass$MyInnerClass.class
你应当将原文件安排在能反响它们packagetree的目次下.比方,假如你将一切的原文件安排在/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来界说.(细节,请看*设置ClassPath*),假如利用-sourcepath命令行选项,编译器将在该路径下查找原文件,不然编译器将在用户类路径下同时查找类文件和原文件.你能够经由过程利用-bootclasspath和-extdirs命令行选项来设置分歧的bootstrap和extension类;见上面的Cross-Compilationoptions
一次乐成的查找将找到一个类文件,原文件或二者.上面是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开首)
StandardOptions[尺度选项]
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:-dc:workspace,将发生c:workspacecommypackageMyClass.class]
假如-d没有指定,javac将类文件安排到和原文件不异的目次下
注重:利用-d选项指定的目次不主动加到你的用户类路径中.
3:-deprecation
显现每一个利用或重载的"不该再利用"的成员或类,假如没有-deprecation,javac将只显现利用了这些类或成员的原文件名.
4:-encoding
设置原文件的编码名,比方EUCJIS/SJIS(日文编码),假如-encoding没有指定,将利用平台缺省的转换
5:-g
发生一切的调试信息,包含部分变量.缺省情形下,调试信息只包含行号和原文件信息.(倡议利用)
6:-g:none
不发生调试信息
7:-g:{keywordlist}
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。 |
|