1.概述
   javac.exe: Java编译器,将Java源代码转换成字节码。
2.用法
   javac <选项> <源文件>
(使用过程中发现,javac <源文件><选项> 也可以

   其中,可能的选项包括:
  -g                                   生成所有调试信息
  -g:none                          不生成任何调试信息
  -g:{lines,vars,source}     只生成某些调试信息
  -nowarn                          不生成任何警告
  -verbose                         输出有关编译器正在执行的操作的消息
  -deprecation                    输出使用已过时的 API 的源位置
  -classpath <路径>           指定查找用户类文件和注释处理程序的位置
  -cp <路径>                      指定查找用户类文件和注释处理程序的位置
  -sourcepath <路径>        指定查找输入源文件的位置
  -bootclasspath <路径>   覆盖引导类文件的位置
  -extdirs <目录>               覆盖安装的扩展目录的位置
  -endorseddirs <目录>     覆盖签名的标准路径的位置
  -proc:{none,only}             控制是否执行注释处理和/或编译。
  -processor <class1>[,

,

...]要运行的注释处理程序的名称;绕过默认的搜索进程
  -processorpath <路径>    指定查找注释处理程序的位置
  -d <目录>                         指定存放生成的类文件的位置
  -s <目录>                         指定存放生成的源文件的位置
  -implicit:{none,class}        指定是否为隐式引用文件生成类文件
  -encoding <编码>            指定源文件使用的字符编码
  -source <版本>                提供与指定版本的源兼容性
  -target <版本>                 生成特定 VM 版本的类文件
  -version                            版本信息
  -help                                输出标准选项的提要
  -Akey[=value]                  传递给注释处理程序的选项
  -X                                    输出非标准选项的提要
  -J<标志>                         直接将 <标志> 传递给运行时系统

 
3.用法举例
 
 3.1举例说明
 
 3.1.1源文件内容

JavaTest.java
import java.util.Date;
public class JavaTest {
public static void main(String[] args) {
System.out.println("hello fans." + " Javac test.");
//已过时
Date date = new Date(2012,5,3);
}
}

3.1.2 位置
    位于C盘JavaBinToolsDemo目录

 
 3.1.3 切换目录
    cd C:\JavaBinToolsDemo
   提示:在dos和linux终端,按tab键会有提示,比如输入javac Java再按tab键,如果只有一个以Java开头的文件,会自动补全。
 
 3.1.4编码
   在win7下使用记事本创建,编码为ASCI。
 
 3.2 七个例子
 
  3.2.1 直接编译JavaTest.java
  javac JavaTest.java
  如果没有语法错误,会在JavaBinToolsDemo下生成JavaTest.class文件。
 

 
 3.2.2 打印版本号
  javac -version JavaTest.java
  或者 javac JavaTest.java -version
  控制台输出‘javac’和 当前版本号,比如javac 1.6.0_29

 
3.2.3 输出有关编译器正在执行的操作的消息
  javac -verbose JavaTest.java

 
 3.2.4 输出使用已过时的 API 的源位置
   javac -deprecation JavaTest.java

  
 3.2.5 指定源文件使用的字符编码

  将JavaTest.java使用记事本另存为UTF-8格式。
  javac  -encoding UTF-8 JavaTest.java
 
  一般用UE或记事本编辑过的UTF-8的文件头会加入BOM标识,该标识由3个char组成。在UTF-8的标准里该BOM标识是可有可无的,Sun 的javac 在编译带有BOM的UTF-8的格式的文件时会出现“非法字符:\65279”的错误,但是用Eclipse进行编译却没有问题,原因在于Eclipse使用的是自己的JDT,而非javac,关于JDT的描述可以到eclipse的官网上去查看。
 
  使用EditPlus软件修改为UTF-8(EditPlus另存为UTF-8指的是没有加入BOM标识)编码后,再次执行。


    javac  -encoding UTF-8 JavaTest.java
 

 
 3.2.6 禁用警告信息
   javac  -nowarn JavaTest.java
   执行结果却仍然有警告,具体原因不详,有待探究。

 
javac JavaTest.java编译以下代码,没有产生任何警告。

//即使编译以下代码
//此段代码在eclipse中会提示DeadCode
if(true){
}else{
System.out.println("hello fans." + " Javac test.");
}
}

 3.2.7 编译多个文件
   在JavaTest.java所在目录下,新建JavaTest2.java
   javac  -encoding UTF-8 *.java


   值得探讨的问题是,现在的警告信息仍然只有一次。
   猜测:如果使用已经过时的API,警告信息会自动出现,-nowarn选项没有用。
 

[置顶] JDK工具(一)–Java编译器javac的更多相关文章

  1. JDK工具(一)–Java编译器javac

    1.概述    javac.exe: Java编译器,将Java源代码转换成字节码. 2.用法    javac <选项> <源文件> (使用过程中发现,javac <源 ...

  2. [置顶] JDK工具(零)--简要介绍JDK1.6自带的42个工具

    Java的开发人员肯定都知道JDK的bin目录中有“java.exe”和“javac.exe”这两个命令行工具, 但并非所有的Java程序员都了解过JDK的bin目录之中其它命令行程序的作用. JDK ...

  3. 使用JDK工具进行Java服务器应用程序故障排除

    Java性能调优指南–有关提高Java代码性能的各种技巧. 最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 1. 介绍 在Java世界中,我们大多数人习惯于在Java应 ...

  4. [置顶] 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)

    官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...

  5. [置顶] 深入探析Java线程锁机制

    今天在iteye上提了一个关于++操作和线程安全的问题,一位朋友的回答一言点醒梦中人,至此我对Java线程锁有了更加深刻的认识.在这里也做个总结供大家参考. 先看几段代码吧! 代码一: public  ...

  6. 019 [工具软件]窗体置顶 DeskPins

    DeskPins:Windows下将任何窗体置顶的工具 官方主页:https://efotinis.neocities.org/deskpins/index.html 官方下载的是一个exe安装包,用 ...

  7. C#或者WPF中让某个窗体置顶

    原文:C#或者WPF中让某个窗体置顶 前记:在工作中有个需求,要求不管到那个界面,我必须让一个浮动条(其实是个窗体)置顶. 我用wpf,因为有之前有好几个界面已经设置成topmost了,所以在这几个界 ...

  8. [置顶] Java 8全面解析!不知道的来看看那!

    java8的面世惊动了不少业界人员,让我们一起来看看吧! 函数式接口 函数式接口是只定义了一个抽象方法的接口.Java 8引入了FunctionalInterface注解来表明一个接口打算成为一个函数 ...

  9. JDK内置性能监测工具使用

    Java自带的性能监测工具用法简介——jstack.jconsole.jinfo.jmap.jdb.jsta.jvisualvmJDK内置工具使用 一.javah命令(C Header and Stu ...

随机推荐

  1. [实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹

    写在前面 上篇文章实现了,新建文件夹以及与之前的上传文件的逻辑做了集成,本篇文章将实现编辑文件夹名称,其实这个也有难点,就是编辑文件夹名称时,要考虑文件夹中存在文件或者子文件夹的情况,因为他们的路径已 ...

  2. linux下php pcntl_fork模拟多线程

    开始用php写后台服务一段时间了.也是在这样的驱动下,不断的学习php语法,体验这一原来一直以为神秘且敬而远之的神奇语言的魅力.最初看php多线程的资料是为了提高程序的处理能力,充分发挥linux多任 ...

  3. HDU 6183 Color it

    线段树. 假设只有一种颜色,因为每次询问有一个$x$一定是$1$,那么我可以想办法找出每一个$y$最小的$x$是多少,如果最小的都不符合,那么一定不符合,因为更新变成了单点更新,询问是区间询问最小值, ...

  4. 为什么23种设计模式里面没有MVC?

    作者:lorio链接:https://www.zhihu.com/question/27738109/answer/100241918来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  5. eclipse的一些部署

    1. Eclipse导入一个项目Package Exporer-------右键------import------General------Existing Project into Workspa ...

  6. FastReport.Net使用:[38]关系的使用

    打印所有成绩 1. 数据源准备 接下来我们需要打印学生成绩,而成绩表中无姓名,我们通过建立Realtion关系来打印数据. 2. 创建Relation关系 在数据视图上的动作下拉菜单中选择“新建关系” ...

  7. 又见Python<2>:如何安装第三方库(Windows)

    使用python进行数据分析或者数据处理时,往往需要使用一些库,而使用库之前必须安装它.Anaconda内置了很多常用的第三方库,可以满足绝大部分需求,比如numpy.pandas.matplotli ...

  8. bzoj 2733 Splay 启发式合并,名次树

    题意:给定一个带点权的无向图,有两种操作: 1.将两个连通分量合并. 2.查询某个连通分量里的第K大点. 题解: 用并查集维护连通关系,一开始建立n棵splay树,然后不断合并,查询. 处理技巧: 1 ...

  9. Uva1553 Caves and Tunnels LCT

    简单题,主要为了练手. #include <cstdio> #include <iostream> #define maxn 100010 using namespace st ...

  10. python开发_zlib_完整版_博主推荐

    ''' python中的zlib模块提供了压缩和解压缩的方法 实现功能: 读取一个文件的内容,然后把该文件的内容以字符串的形式返回 然后对返回回来的字符串进行压缩处理,然后写入到另一个文件中 同时,也 ...