ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:23.11KB ,
资源ID:22523921      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22523921.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(javac文档格式.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

javac文档格式.docx

1、(有关详细资料,请参阅设置类路径)。如果使用-sourcepath 选项,则编译器在 sourcepath 指定的路径中查找源文件;否则,编译器将在用户类路径中查找类文件和源文件。可用-bootclasspath 和 -extdirs 选项来指定不同的自举类或扩展类;参阅下面的联编选项。成功的类型搜索可能生成类文件、源文件或两者兼有。以下是 javac 对各种情形所进行的处理: 搜索结果只生成类文件而没有源文件: javac 使用类文件。 搜索结果只生成源文件而没有类文件: javac 编译源文件并使用由此生成的类文件。 搜索结果既生成源文件又生成类文件:确定类文件是否过时。若类文件已过时,则

2、 javac 重新编译源文件并使用更新后的类文件。否则,javac 直接使用类文件。缺省情况下,只要类文件比源文件旧, javac 就认为它已过时。( -Xdepend 选项指定相对来说较慢但却比较可靠的过程。) javac 注意: javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。文件列表为缩短或简化 javac 命令,可以指定一个或多个每行含有一个文件名的文件。在命令行中,采用 字符加上文件名的方法将它指定为文件列表。当 javac 遇到以 字符开头的参数时,它对那个文件中所含文件名的操作跟对命令行中文件名的操作是一样的。这使得 Window

3、s 命令行长度不再受限制。例如,可以在名为 sourcefiles 的文件中列出所有源文件的名称。该文件可能形如:MyClass1.javaMyClass2.javaMyClass3.java然后可用下列命令运行编译器:C: javac sourcefiles选项编译器有一批标准选项,目前的开发环境支持这些标准选项,将来的版本也将支持它。还有一批附加的非标准选项是目前的虚拟机实现所特有的,将来可能要有变化。非标准选项以-X 打头。标准选项-classpath 类路径 设置用户类路径,它将覆盖 CLASSPATH 环境变量中的用户类路径。若既未指定 CLASSPATH 又未指定 -classpa

4、th,则用户类路径由当前目录构成。有关详细信息,请参阅设置类路径。若未指定 -sourcepath 选项,则将在用户类路径中查找类文件和源文件。-d 目录 设置类文件的目标目录。如果某个类是一个包的组成部分,则 javac 将把该类文件放入反映包名的子目录中,必要时创建目录。例如,如果指定 -d c:/myclasses 并且该类名叫 com.mypackage.MyClass,那么类文件就叫作 c:/myclasses/com/mypackage/MyClass.class。若未指定 -d 选项,则 javac 将把类文件放到与源文件相同的目录中。 -d 选项指定的目录不会被自动添加到用户类

5、路径中。-deprecation 显示每种不鼓励使用的成员或类的使用或覆盖的说明。没有给出 -deprecation 选项的话, javac 将显示这类源文件的名称:这些源文件使用或覆盖不鼓励使用的成员或类。-encoding 设置源文件编码名称,例如 EUCJIS/SJIS。若未指定 -encoding 选项,则使用平台缺省的转换器。-g 生成所有的调试信息,包括局部变量。缺省情况下,只生成行号和源文件信息。-g:none 不生成任何调试信息。关键字列表 只生成某些类型的调试信息,这些类型由逗号分隔的关键字列表所指定。有效的关键字有:source 源文件调试信息 lines 行号调试信息 v

6、ars 局部变量调试信息 -nowarn 禁用警告信息。-O 优化代码以缩短执行时间。使用 -O 选项可能使编译速度下降、生成更大的类文件并使程序难以调试。在JDK 1.2 以前的版本中,javac 的 -g 选项和 -O 选项不能一起使用。在 JDK 1.2 中,可以将 -g 和 -O 选项结合起来,但可能会得到意想不到的结果,如丢失变量或重新定位代码或丢失代码。-O 选项不再自动打开 -depend 或关闭 -g 选项。同样,-O 选项也不再允许进行跨类内嵌。-sourcepath 源路径 指定用以查找类或接口定义的源代码路径。与用户类路径一样,源路径项用分号 (;)进行分隔,它们可以是目

7、录、JAR 归档文件或 ZIP 归档文件。如果使用包,那么目录或归档文件中的本地路径名必须反映包名。通过类路径查找的类,如果找到了其源文件,则可能会自动被重新编译。-verbose 冗长输出。它包括了每个所加载的类和每个所编译的源文件的有关信息。联编选项缺省情况下,类是根据与 javac 一起发行的 JDK 自举类和扩展类来编译。但 javac 也支持联编,在联编中,类是根据其它 Java平台实现的自举类和扩展类来进行编译的。联编时, -bootclasspath 和 -extdirs 的使用很重要;请参阅下面的联编程序示例。-target 版本 生成将在指定版本的虚拟机上运行的类文件。缺省情

8、况下生成与 1.1 和 1.2 版本的虚拟机都兼容的类文件。JDK 1.2 中的 javac 所支持的版本有:1.1 保证所产生的类文件与 1.1 和1.2 版的虚拟机兼容。这是缺省状态。1.2 生成的类文件可在 1.2 版的虚拟机上运行,但不能在 1.1 版的虚拟机上运行。-bootclasspath 自举类路径 根据指定的自举类集进行联编。和用户类路径一样,自举类路径项用分号 (;-extdirs 目录 根据指定的扩展目录进行联编。目录是以分号分隔的目录列表。在指定目录的每个 JAR 归档文件中查找类文件。非标准选项-X 显示非标准选项的有关信息并退出。-Xdepend 递归地搜索所有可获

9、得的类,以寻找要重编译的最新源文件。该选项将更可靠地查找需要编译的类,但会使编译进程的速度大为减慢。-Xstdout 将编译器信息送到System.out 中。缺省情况下,编译器信息送到 System.err 中。-Xverbosepath 说明如何搜索路径和标准扩展以查找源文件和类文件。-J选项 将选项传给 javac 调用的 java 启动器。例如,-J-Xms48m 将启动内存设为 48 兆字节。虽然它不以 -X 开头,但它并不是 javac 的标准选项。用 -J 将选项传给执行用Java 编写的应用程序的虚拟机是一种公共约定。 CLASSPATH 、 -classpath 、 -boo

10、tclasspath 和 -extdirs 并不 指定用于运行 javac 的类。如此滥用编译器的实现通常没有任何意义而且总是很危险的。如果确实需要这样做,可用-J 选项将选项传给基本的 java 启动器。程序示例编译简单程序一个源文件 Hello.java ,它定义了一个名叫 greetings.Hello 的类。greetings 目录是源文件和类文件两者的包目录,且它不是当前目录。这让我们可以使用缺省的用户类路径。它也使我们没必要用-d 选项指定单独的目标目录。 dirgreetings/ dir greetingsHello.java cat greetings/Hello.javap

11、ackage greetings;public class Hello public static void main(String args) for (int i=0; i args.length; i+) System.out.println(Hello + argsi); javac greetings/Hello.javaHello.class Hello.java java greetings.Hello World Universe EveryoneHello WorldHello UniverseHello Everyone编译多个源文件该示例编译 greetings 包中的所

12、有源文件。Aloha.java GutenTag.java Hello.java Hi.java javac greetings/*.javaAloha.class GutenTag.class Hello.class Hi.class指定用户类路径对前面示例中的某个源文件进行更改后,重新编译它: cd/examples javac greetings/Hi.java由于 greetings.Hi 引用了 greetings 包中其它的类,编译器需要找到这些其它的类。上面的示例能运行是因为缺省的用户类路径刚好是含有包目录的目录。但是,假设我们想重新编译该文件并且不关心我们在哪个目录中的话, 我

13、们需要将 /examples 添加到用户类路径中。可以通过设置 CLASSPATH 达到此目的,但这里我们将使用 -classpath 选项来完成。javac-classpath /examples /examples/greetings/Hi.java如果再次将 greetings.Hi 改为使用标题实用程序,该实用程序也需要通过用户类路径来进行访问:javac-classpath /examples:/lib/Banners.jar /examples/greetings/Hi.java要执行 greetings 中的类,需要访问 greetings 和它所使用的类。java-classp

14、ath /examples:/lib/Banners.jar greetings.Hi将源文件和类文件分开将源文件和类文件置于不同的目录下经常是很有意义的,特别是在大型的项目中。我们用 -d 选项来指明单独的类文件目标位置。由于源文件不在用户类路径中,所以用-sourcepath 选项来协助编译器查找它们。classes/ lib/ src/ dir srcfarewells/ dir src/farewellsBase.java GoodBye.java dir libBanners.jar dir classes javac -sourcepath src -classpath class

15、es:lib/Banners.jar /src/farewells/GoodBye.java -d classes dir classes/farewellsBase.class GoodBye.class编译器也编译了 src/farewells/Base.java,虽然我们没有在命令行中指定它。要跟踪自动编译,可使用-verbose 选项。联编程序示例这里我们用 JDK 1.2 的 javac 来编译将在 1.1 版的虚拟机上运行的代码。 javac-target 1.1 -bootclasspath jdk1.1.7/lib/classes.zip /-extdirs OldCode.j

16、ava-target 1.1JDK 1.2 javac 在缺省状态下也将根据 1.2 版的自举类来进行编译,因此我们需要告诉 javac 让它根据 JDK 1.1 自举类来进行编译。可用 -bootclasspath 和 -extdirs 选项来达到此目的。不这样做的话,可能会使编译器根据 1.2 版的 API 来进行编译。由于1.1 版的虚拟机上可能没有该 1.2 版的 API,因此运行时将出错。选项可确保生成的类文件与 1.1 版的虚拟机兼容。在 JDK1.2 中, 缺省情况下 javac 编译生成的文件是与1.1 版的虚拟机兼容的,因此并非严格地需要该选项。然而,由于别的编译器可能采用其

17、它的缺省设置,所以提供这一选项将不失为是个好习惯。java命令(源文:-classpath, 设定要搜索的类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有的CLASSPATH的设定。由于所要执行的类也是要搜索的类的一部分,所以一定要把这个类的路径也放到-classpath的设置里面。表现在,在要执行的类的路径里面执行java时,一定要添加上点号(.)标示本目录也要搜索。假设abc.class在路径c:/src里面可以在任何路径下执行以下命令java-classpath c:/classes; c:/jar/abc.jar;c:/zip/abc.zip;/sr

18、c abc问题:如果main.class属于c:/jar/abc.jar,并且在blogs.jeffchen这个包里,那么执行java -classpath /classes;blogs.jeffchen.main即可。在windows下,文件路径的分割符为反斜杠/,类或者java文件列表的分割符为分号;在linux下,文件路径的分隔符位斜杠 /,类或者java文件列表的分隔符为冒号 :一个linux下编译和运行的例子/usr/local/java/bin/javac -classpath /tmp/javatest/lib/mail-1.3.3.jar -d /tmp/javatest/bi

19、n/ /tmp/javatest/src/jp/co/realseed/Capability.java/usr/local/java/bin/java-classpath /tmp/javatest/lib/mail-1.3.3.jar:/tmp/javatest/bin/ jp.co.realseed.Capability jar 命令详解 http:/www.yuanma.org/data/2006/1020/article_1693.htm)jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。

20、它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUN 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLASSPATH 中。用法使用不带任何的 jar 命令我们可以看到 jar 命令的用法如下:jar ctxuvfm0M jar-文件 manifest-文件 -C 目录 文件名 .其中 ctxu 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:-c创建新的 JAR 文件包-t列出 JAR 文件包的内容列表-x展开 JAR 文件包的指定文件或者所有文件-u更

21、新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)vfm0M中的选项可以任选,也可以不选,它们是 jar 命令的选项参数-v生成详细报 告并打印到标准输出-f指定 JAR 文件名,通常这个参数是必须的-m指定需要包含的 MANIFEST 清单文件-0只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快-M不产生所有项 的清单(MANIFEST文件,此参数会忽略 -m 参数jar-文件 即需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数manifest-文件 即 MANIFEST 清单文件,它是 -m 参数的附属参数-C 目录 表示

22、转到指定目录下去执行这个 jar 命令的操作。它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用。文件名 . 指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。如果指定了目录,那么 jar 命令打包的时候会自动把该目录中的所有文件和子目录打入包中。例子下面举一些 例子来说明 jar 命令的用法:1) jar cf test.jar test该命令没有执行过程的显示,执行结果 是在当前目录生成了 test.jar 文件。如果当前目录已经存在 test.jar,那么该文件将被覆盖。2) jar c

23、vf test.jar test该命令与上例中的结果相同,但是由于 v 参数的作用,显示出了打包过程,如下:标明清单 (manifest)增加:test/(读入= 0) (写出= 0)(存储了 0)test/Test.class(读入= 7) (写出= 6)(压缩了 14)3) jar cvfM test.jar test该命令与 2) 结果类似,但在生成的 test.jar 中没有包含 META-INF/MANIFEST 文件,打包过程的信息也略有差别:4) jar cvfm test.jar manifest.mf test运行结果与 2) 相似,显示信息也相同,只是生成 JAR 包中的

24、META-INF/MANIFEST 内容不同,是包含了 manifest.mf 的内容manifest.mf文件例子Manifest-Version: 1.0Created-By: 1.4.2 (Sun Microsystems Inc.)Main-Class: Music一般我们修改Music这个地方就可以了 5) jar tf test.jar在 test.jar 已经存在的情况下,可以查看 test.jar 中的内容,如对于 2) 和 3) 生成的 test.jar 分别应该此命令,结果如下;对于 2)META-INF/META-INF/MANIFEST.MFtest/test/Test

25、.class对于 3)6) jar tvf test.jar除显示 5) 中显示的内容外,还包括包内文件的详细信息,如:0 Wed Jun 19 15:39:06 GMT 2002 META-INF/86 Wed Jun 19 15:06 GMT 2002 META-INF/MANIFEST.MF33:04 GMT 2002 test/7 Wed Jun 19 15:04 GMT 2002 test/Test.class7) jar xf test.jar解开 test.jar 到当前目录,不显示任何信息,对于 2) 生成的 test.jar,解开后的目录结构如下:=|- META-INF|

26、- MANIFEST- test -Test.class8) jar xvf test.jar运行结果与 7) 相同,对于解压过程有详细信息显示,如:创建:展开:9) jar uf test.jar manifest.mf在 test.jar 中添加了文件 manifest.mf,此使用 jar tf 来查看 test.jar 可以发现 test.jar 中比原来多了一个 manifest。这里顺便提一下,如果使用 -m 参数并指定 manifest.mf 文件,那么 manifest.mf 是作为清单文件 MANIFEST 来使用的,它的内容会被添加到 MANIFEST 中;但是,如果作为一般文件添加到 JAR 文件包中

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1