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. MySQL与unix时间问题

    1.select unix_timestamp() -->可以返回以秒记的unix时间. 2.select from_unixtime('1455804595','%Y年%m月%d号'); -- ...

  2. SQL Server 分区表的创建方法与管理

    背景知识: 分区表.可以把表中的数据按范围保存到不同的文件组中. 举个例子吧: 2014年以前的数据保存到文件组A 2014~2015的数据保存到文件组B 2015年以后的数据保存到文件组C 好处: ...

  3. 四巧工作简化法(ECRS)

    在构思项目的工作方法时,可以运用ECRS(四巧工作简化法)技术,即E取消.C合并.R重排.S简化等四种技巧. 1.取消(Eliminate) 对所做的项目,首先应当考虑取消的可能性.如果所做的项目.工 ...

  4. ARM和X86功耗差别的深层原因探讨

    ARM和X86功耗差别的深层原因探讨 ARM和X86功耗的差别一直是个很热的话题.ARM可以做的很低,甚至1瓦都不到.而X86服务器的芯片可以达到100-200瓦,就算是嵌入式处理器Atom系列也需要 ...

  5. nginx grok 正则错误的输出情况

    nginx 配置: http { include mime.types; default_type application/octet-stream; log_format main '$http_h ...

  6. 静态查找_Search

    #include <stdio.h> #define MAXSIZE 50 #define OK 1 #define ERROR 0 int F[MAXSIZE];//斐波那契数列 int ...

  7. Create local metadata resource of yum

    Today, I need install an oracle software for a machine whose os is Linux. As we all know, installing ...

  8. iOS 创建推送证书

    1.首先你想创建推送证书和以前你做真机测试证书一样,需要实现准备一个99$的付费账号.然后登陆苹果开发者网站.http://developer.apple.com/ 2.登陆以后你能看到这个界面然后选 ...

  9. 变形课(dfs)

    变形课 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submissi ...

  10. 最少步数(dfs + bfs +bfs优化)

    最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 ...