在科学技术不断进步改革的今时今日,掌握一门扎实的技术对于每一个人来说都是十分重要的。今天主要为大家介绍一下javac的结构以及它的查找类型主要包括哪些内容。
首先,javac结构主要有:[ options ] [ sourcefiles ] [ @files ]。
参数的含义如下所示:
1.options,命令行选项;
2.sourcefiles,一个或多个要编译的源文件(例如MyClass.java);
3.@files,一个或多个对源文件进行列表的文件。
接下来为大家简要描述下它的查找类型主要包含了哪些内容。
首先,当我们编译源文件时,编译器常常需要的是它没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要这些信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。
举个例子,当扩展 java.applet.Applet时还要用到Applet的祖先类:java.awt.Panel 、java.awt.Container、java.awt.Component和java.awt.Object。
另外,当编译器需要类型信息时,它将查找定义类型的源文件或类文件。
编译器先在自举类及扩展类中查找,然后在用户类路径中查找。用户类路径通过两种途径来定义:⑴通过设置CLASSPATH环境变量或使用-classpath命令行选项;⑵如果使用-sourcepath选项,则编译器在sourcepath指定的路径中查找源文件;⑶编译器将在用户类路径中查找类文件和源文件。可用-bootclasspath和-extdirs选项来指定不同的自举类或扩展类。
可以参考下面的联编选项。
成功的类型搜索可能生成类文件、源文件或两者兼有。以下是javac对各种情形所进行的处理:
1.搜索结果只生成类文件而没有源文件:javac使用类文件。
2.搜索结果只生成源文件而没有类文件:javac编译源文件并使用由此生成的类文件。
3.搜索结果既生成源文件又生成类文件:确定类文件是否过时。若类文件已过时,则javac重新编译源文件并使用更新后的类文件。否则,javac直接使用类文件。
另外,在缺省情况下,只要类文件比源文件旧,javac就认为它已过时。
同时,需要注意的是,javac可以隐式编译一些没有在命令行中提及的源文件。用-verbose选项可跟踪自动编译。
以上就是关于javac的结构解析以及它的查找类型所包含内容的概述。想要了解更多java基础知识,敬请关注奇Q工具网。
推荐阅读: