Java Lint 选项

Java 编译器的选项包括所谓的标准选项和非标准选项。标准选项是指在当前版本的开发环境中支持,且在未来版本中也将被支持的选项。常用的标准选项比如 
-classpath 以及 -d 等等。

非标准选项是在当前版本的开发环境中支持,但不能保证将来一定会继续支持的选项。非标准选项都由 -X 开头,比如我们这里所关心的 Java Lint 
选项都由 -Xlint 开头。需要先说明的是,单纯的选项 -X 本身是一个标准选项,作用是显示关于非标准选项的信息。

这些选项都是非标准选项,如有更改,恕不另行通知。

~]$ javac -X
-Xlint Enable recommended warnings //启用建议的警告 
-Xlint:{all,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs,-cast,-classfile,-deprecation,-dep-ann,-divzero,-empty,-fallthrough,-finally,-options,-overrides,-path,-processing,-rawtypes,-serial,-static,-try,-unchecked,-varargs,none} Enable or disable specific warnings   //启用或禁用特定的警告 
-Xbootclasspath/p:<path> Prepend to the bootstrap class path, //置于引导类路径之前 
-Xbootclasspath/a:<path> Append to the bootstrap class path // 置于引导类路径之后 
-Xbootclasspath:<path> Override location of bootstrap class files  //覆盖引导类文件的位置 
-Djava.ext.dirs=<dirs> Override location of installed extensions  //覆盖安装的扩展目录的位置 
-Djava.endorsed.dirs=<dirs> Override location of endorsed standards path //覆盖签名的标准路径的位置 
-Xmaxerrs <number> Set the maximum number of errors to print //设置要输出的错误的最大数目 
-Xmaxwarns <number> Set the maximum number of warnings to print //设置要输出的警告的最大数目 
-Xstdout <filename> Redirect standard output,//重定向标准输出 
-Xprint Print out a textual representation of specified types
-XprintRounds Print information about rounds of annotation processing
-XprintProcessorInfo Print information about which annotations a processor is asked to process
-Xprefer:{source,newer} Specify which file to read when both a source file and class file are found for an implicitly compiled class
-Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files

These options are non-standard and subject to change without notice.
~]$

我们依次来看看其中涉及 lint 的选项:

-Xlint

启用所有警告。该选项相当于 -Xlint:all 选项。相反,关闭所有警告的选项为 -Xlint:none。 
-Xlint:unchecked

启用对所谓的未经检查的转换(unchecked warning)的警告。这个警告涉及 JDK 5.0 中的新特性——范型(Generic 
Type),这绝对是另外一个故事了。有兴趣的话,可以在 Internet 上搜索到很多关于范型的文章。 
-Xlint:path

当发现不存在的路径或者目录时给出警告,比如标准选项中的类路径(classpath),源代码路径(sourcepath)等等。 
-Xlint:serial

当在可序列化的类中没有发现 serialVersionUID 的定义时,给出警告。 
Xlint:finally

当发现 finally 子句无法正常结束的情况时给出警告。比如下面这段代码:

try {

} catch (Exception e) { 
} finally { 
    for (;;); 

-Xlint:fallthrough

当在 switch 语句块中发现 fall-through 的情形时给出警告。这里所说的 fall-through 情形指的是在 
switch语句块中,除了最后一个 
case 之外的其它 case 中没有包含 break 语句,导致执行代码时从一个 case 直接穿过执行到了下一个 case 中。比如下面这段代码:

switch (color) { 
case GREEN: 
        System.out.println("green"); 
        // 没有 break 语句;fall-through 
case RED: 
        System.out.println("red"); 
        break; 
case YELLOW: 
        System.out.println("yellow");

-Xlint:deprecation

显示关于使用了过时的 API 的详细信息。这个选项等同于一个我们熟悉的标准选项,即 -deprecation 选项。相对其它 lint 
选项而言,该选项的特别之处在于,即使你关闭了它,编译器仍然会简单地提醒你某个类中使用了过时的 API。只是启用该项警告时,显示的信息将更详细而以。

上面提到的这些 lint 选项中的警告名称(冒号后面的部分),可以加以组合,从而有选择的开启或者关闭特定的一组 lint 警告选项,比如 
-Xlint:deprecation, 
finally 表示开启 deprecation 和 finally 警告。还可以在警告名称前加上"-"表示关闭该项警告,比如 
-Xlint:all,-unchecked 表示开启除了 unchecked 之外的所有警告。

关于 Java 编译器命令的完整参考请见 javac - Java programming language 
compiler<http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html>。

http://spaces.msn.com/members/stephensuen 
http://groups.google.com/group/programmercafe

Xlint以及Java Lint 选项的更多相关文章

  1. idea 右键无java class选项

    项目中新建module之后,要在该目录下新增java Class文件,右键——>New发现无Java Class选项. File –Project Structure或者ctrl+alt+shi ...

  2. IDEA右键新建时没有Java Class选项

    今天在IDEA中新建了一个maven工程,但是在我想要新建Class时发件右键菜单里竟然没有Java Class选项!如下图所示: 如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注, ...

  3. eclipse中的项目运行时不出现run as→java application选项

    eclipse中的运行java project时不出现run as→java application选项? 解决方案☞必须有正确的主方法,即public static void main(String ...

  4. Intelidea右键新建选项没有Java class选项

    Intelidea创建好项目之后,右键新建Java class的时候发现没有改选项,只有以下几个选项 把sec目录设为源码目录,首先打开Project Structure

  5. intellij idea 2019 右键包新建文件是没有java Class选项

    今天要测试一个技术点于是新建了一个springboot工程, 在新建文件的时候发现右键后java class文件选项不见了. 以前真的没有碰到这种问题, 感觉很是意外于是百度Google后找到了解决办 ...

  6. idea 项目java版本选项位置

    藏这里了 还有一个

  7. Java魔法堂:注解用法详解——@SuppressWarnings

    一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @SuppressWar ...

  8. Java魔法堂:注解用法详解——@SuppressWarnings(转)

    一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @SuppressWar ...

  9. 知识点:java 注解 @SuppressWarnings

    前言: 简介:java.lang.SuppressWarnings是J2SE5.0中标准的Annotation之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量上.作用:告诉编译器忽略指定的 ...

随机推荐

  1. python核心编程-第三章-个人笔记

    1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括 ...

  2. Oracle误删表空间文件后数据库无法启动

    [问题描述]Oracle误删表空间文件后数据库无法启动,报错表空间文件不存在 [解决办法]sqlplus / as sysdba       #以dba身份登陆数据库shutdown immediat ...

  3. Android之用PopupWindow实现弹出listview形式菜单

    Android 4.0之前的菜单使用非常广泛,但是在android4.0之后,很少使用先前的菜单样式了.那如何实现下图的样式了? 我们简单模拟一下. (1)屏蔽系统弹出的菜单: 1.首先创建至少一个系 ...

  4. ID3决策树算法原理及C++实现(其中代码转自别人的博客)

    分类是数据挖掘中十分重要的组成部分.分类作为一种无监督学习方式被广泛的使用. 之前关于"数据挖掘中十大经典算法"中,基于ID3核心思想的分类算法C4.5榜上有名.所以不难看出ID3 ...

  5. uva 10041 Vito's Family_贪心

    题意:给你n个房子的距离,问那个房子离别的房子的距离最近,并且输出与别的房子距离的总和 思路:排序一下,中间的房子离别房子距离必然是最少的. #include <iostream> #in ...

  6. hdu 5569 matrix(简单dp)

    Problem Description Given a matrix with n rows and m columns ( n+m ,) and you want to go to the numb ...

  7. javascript第十三课:Json

    js中的json就是字典,Dictionary,就是字典的简化创建方式,json的遍历使用for in的方式,进行遍历 遍历复杂json格式 (如果数组里面存储的是键值对的话,字符串最好用双引号) v ...

  8. 《Effective C++》:条款46-条款47

    条款46请输入转换的时候,需要定义非模板成员函数 条款47请使用traits class表现类型信息 条款46:须要类型转换时请为模板定义非成员函数 条款 24提到过为什么non-member函数才有 ...

  9. CSS3中的弹性流体盒模型技术详解

    先回顾一下CSS1 和 CSS2中都已经定义了哪些布局方面的属性,这样也会增加我们理解弹性布局.   其实我们现在有很多一部分人,你们刚刚接触CSS层叠样式表,或者接触有一段时间了,但是却没有很好的去 ...

  10. ISG2015

    一天的成果. Re300 是男人就下一百层 一个64位的程序,放到IDA里的话,IDA就会分析不动,这样就把人给下着了.objdump –d re300 > output,这样拿到汇编代码,大概 ...