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. Java-redis分布式锁 抢购秒杀系统 实现

    一.使用分布式锁要满足的几个条件: 系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体 ...

  2. 559. N叉树的最大深度

    给定一个 N 叉树,找到其最大深度. 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数. 例如,给定一个 3叉树 : 我们应返回其最大深度,3. 说明: 树的深度不会超过 1000. 树的节点 ...

  3. CodeForces 805E Ice cream coloring

    直觉,构造. 画了几个样例,发现可以随便构造......先构造根节点的完全图,每个点置为不同的颜色,然后构造儿子节点的完全图...... #include <cstdio> #includ ...

  4. 洛谷P2151 [SDOI2009] HH去散步 [矩阵加速]

    题目传送门 HH去散步 题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走 ...

  5. Codeforces Round 548 (Div. 2)

    layout: post title: Codeforces Round 548 (Div. 2) author: "luowentaoaa" catalog: true tags ...

  6. wc 统计行数 字数

    Linux统计文件行数 2011-07-17 17:32 by 依水间, 168255 阅读, 4 评论, 收藏, 编辑 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数.字数.行数. ...

  7. 【BZOJ 1853】 1853: [Scoi2010]幸运数字 (容斥原理)

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 2472  Solved: 911 Description 在中国 ...

  8. intellij idea 中文 汉化包 韩梦飞沙

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 汉化包 百度云盘 下载地址: https://pan.baidu.com/s/1hs6B ...

  9. 【51Nod 1238】最小公倍数之和 V3

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1238 设\(A(n)=\sum\limits_{i=1}^n\frac{ ...

  10. 2017-2018-1 JAVA实验站 第三周作业

    2017-2018-1 JAVA实验站 第三周作业 团队展示 队名 JAVA实验站 拟作的团队项目描述 (2048)增加其他模式,使得2048更加丰富多彩 团队的首次合照 团队的特色描述 团队内部很团 ...