Java千百问_08JDK详解(007)_javac是什么

点击进入_更多_Java千百问

1、javac是什么

javac即Java编程语言编译器,位于jdk/bin目录下,读取使用Java编程语言编写的源文件(.java),并编译成字节码类文件(.class)。编译器会一并编译源代码中的注解(annotations),但是会移除注释。

了解注解注释看这里:[注解、注释有什么区别][2]

javac还可以隐式编译一些没有在命令行中提及的源文件。当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。

了解继承看这里:java类的继承有什么意义

2、javac如何使用

javac工具可以再安装了jdk的操作系统中执行。了解如何安装jdk看这里:如何安装和配置Jdk

打开操作系统的命令终端,输入相应的命令行,就能够使用javac,具体语法如下:

javac [ options ] [ sourcefiles ] [ @files ]

其中,参数可按任意次序排列。参数说明如下:

options

命令行选项,直接执行javac或者javac -help会显示所有options操作,主要有:

  1. -classpath

    类路径,设置用户类的路径,它会覆盖CLASSPATH环境变量中的用户类路径。若既未指定CLASSPATH又未指定-classpath,则用户类路径由当前目录构成。多个路径项用分号”;”进行分隔。

  2. -sourcepath

    源路径,指定用来查找类、接口定义的源代码路径。它们可以是目录、jar或zip。要注意的是通过类路径查找,如果找到了其源文件,则会自动被重新编译。与用户类路径一样,多个源路径项用分号”;”进行分隔。

    如果使用包,那么目录或归档文件中的本地路径名必须反映包名。例如要引入package是com.test的源文件(com在src文件夹中),则需要指定com上一级目录:

    javac -sourcepath src Test.java

  3. -d

    指定存放生成的类文件的位置,若不指定,则类文件会放在源文件目录。需要指定已有的目录,不能自动创建文件夹。

  4. -encoding

    设置源文件编码,例如utf-8。若未指定-encoding选项,则使用平台缺省的编码。

  5. -g

    生成所有的调试信息,包括局部变量。缺省情况下,只生成行号和源文件信息。

  6. -g:none

    不生成任何调试信息。

  7. -verbose

    输出有关编译器正在执行的操作的消息。它包括了每个所加载的类和每个所编译的源文件的有关信息。

  8. -version

    打印javac版本信息,该版本即jdk的版本。

sourcefiles、@files

一个或多个要编译的源文件。

  • 编译一个文件,直接写源文件名,例如:

    执行:javac Test.java,生成编译文件Test.class。

  • 编译多个文件,需要创建一个新文件(没有后缀名),写入需要编译的源文件,然后加上前缀@。例如:

    新文件:javaList,其内容:

    Test1.java

    Test2.java

    Test3.java

    执行:javac @javaList,生成编译文件Test1.class、Test2.class、Test3.class。

3、如何通过代码执行javac

对于javac,我们不但可以在操作系统中直接执行,它也提供了若干API,可以使用这些API通过编写代码来完成编译。

具体看这里:[如何使用javacAPI通过代码编译源文件][5]

时间: 2024-10-15 01:31:57

Java千百问_08JDK详解(007)_javac是什么的相关文章

Java千百问_08JDK详解(017)_Javadoc是什么

点击进入_更多_Java千百问 1.Javadoc是什么 javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释,形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以形成开发文档了. 了解注释看这里:注释是什么 2.如何使用Javadoc java为javadoc技术独立出了一个工具,它位于JAVA_HOME/bin/路径中,在终端中执行如下命令: javadoc 文件名.java java

Java千百问_08JDK详解(016)_AttachAPI是什么

点击进入_更多_Java千百问 1.AttachAPI是什么 Attach API是Sun公司提供的一套扩展API,它并不是Java的标准API.顾名思义,Attach,为JVM附加某些程序.简单来说,就是把一个程序连接到一个正在运行的JVM上,连接之后,这段程序就可以在JVM中运行.这段程序被称为JVMTI Agent程序. 我们使用它可以很方便地在运行过程中动态地设置加载代理类(JVMTI Agent),使我们能方便的监控一个JVM,运行一个外加的代理程序. 了解JVMTI Agent看这里

Java千百问_08JDK详解(013)_JVMTI是什么

点击进入_更多_Java千百问 1.JVMTI是什么 JVMTI(JVM Tool Interface)是JPDA体系中的最底层, 由Java虚拟机提供的native编程接口,是JVMPI(Java Virtual Machine Profiler Interface)和 JVMDI(Java Virtual Machine Debug Interface)的更新版本. 了解JPDA体系看这里:JPDA是什么 从它的发展中我们就可以知道,JVMTI提供了调试(debug)和分析(profiler

Java千百问_08JDK详解(011)_jnlp文件是什么

点击进入_更多_Java千百问 1.jnlp文件是什么 JNLP(Java Network Launching Protocol ,java网络执行协议文件)是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url链接打开一个java应用程序. Java桌面应用程序可以通过JNLP的方式发布.如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点.如果你使用JNLP打包一个应用程序,那么它

Java千百问_08JDK详解(010)_java、javaw、javaws有什么区别

点击进入_更多_Java千百问 1.java.javaw.javaws有什么区别 java.javaw.javaws这三个都是jdk自带的三个工具,都在jdk/bin路径下,这三个工具都是为了启动java应用存在的,具体区别如下: java java命令即java应用的执行器,通过它执行的应用日志会再控制台console显示输出与错误信息. 了解更多java命令看这里:java程序如何运行 javaw javaw与java一样,是java应用的执行器,不同的是它不会再控制台console显示输出

Java千百问_08JDK详解(003)_java核心框架是什么样的

点击进入_更多_Java千百问 1.jdk基础扩展类库都有什么 了解java核心框架看这里:java核心框架是什么样的 jdk基础类库分为两大部分,基础库.扩展基础库,提供了相当大量的功能,扩展基础库具体如下: I/O工具(I/O) java.io和java.nio包提供了一组非常丰富的api来管理应用程序的I/O(输入/输出).包括文件和设备I/O.对象序列化.缓冲区管理.字符集支持等.此外,API还为服务端提供了包括多路复用.非阻塞I/O.内存映射和文件锁等功能. 了解更多java.io和j

Java千百问_08JDK详解(018)_JConsole是什么

点击进入_更多_Java千百问 1.JConsole是什么 JConsole是一个Java程序性能分析器,可以从命令行或在终端中运行.可以用来监控Java程序的性能以及跟踪代码. 同时在com.sun.tools.jconsole包中提供了一组接口,允许访问JConsole,对线程.内存.类.对象进行分析和统计. 2.如何使用JConsole工具 我们这里主要介绍jconsole工具的用法,在JAVA_HOME/bin路径中,我们可以直接打开他.如下图: 我们可以对正在运行的本地进程或者远程进程

Java千百问_08JDK详解(019)_jdk工具包有哪些工具

点击进入_更多_Java千百问 jdk工具包有哪些工具 JDK工具包中提供了很多工具和实用的程序.涵盖了基本工具( javac, java, javadoc, apt, appletviewer, jar, jdb, javah, javap, extcheck),安全工具,国际化工具,RMI工具,IDL, RMI-IIOP工具,部署工具,java插件工具,java Web工具,监控管理工具,故障排查工具等. 这里我们只进行以下简单说明,不一一介绍,具体参见oracle官方文档:http://d

Java千百问_08JDK详解(012)_JPDA是什么

点击进入_更多_Java千百问 1.JPDA是什么 我们可以通过常见的Java IDE提供的图形界面调试工具进行代码调试,甚至可以使用JDK自带的jdb工具,以文本命令的形式来调试Java 程序,这些形形色色的调试工具都是通过JPDA开发的. JPDA(Java Platform Debugger Architecture)是 Java平台调试体系结构的缩写,通过JPDA提供的API,开发人员可以方便灵活的搭建Java调试工具. JPDA主要由三个部分组成:Java虚拟机工具接口(JVMTI,J