7

来自 Visual Studio 和 Eclipse,如何找出所有编译器警告,例如整个项目的未使用变量。这似乎是一件微不足道的事情,但找不到它。我可以在“操作项”窗口中找出所有错误,但不是所有警告。

4

3 回答 3

5

这似乎是不可能的。有一个开放的错误报告:https ://netbeans.org/bugzilla/show_bug.cgi?id=135014 。

它很旧,最近才分配(请参阅错误历史记录)。

作为替代方案,您可以尝试 Source → Inspect。它与 Java 编译器警告并不完全相同,但有点帮助。

例如,在下面的代码中,它捕获了未使用的导入和空变量的使用,但没有报告未使用的变量(尽管它在 NetBeans 编辑器中已正确注释)。

import java.io.InputStreamReader; // Reported unused import

public class TestJava {
    public static void main(String[] args) {

        String input = null;
        String unused; // DID NOT report unused variable

        System.out.println("Input "+ input); // Reported usage of null
    }
}

只需确保安装 FindBugs 插件即可充分利用它。检查对话框将警告插件丢失并为您安装。

于 2013-11-05T00:31:14.797 回答
3

老实说,这似乎是不可能的。“未使用的变量”甚至不是一流的“提示”(您可以在“工具”>“选项”>“编辑器”>“提示...”下看到提示,并注意没有基于“未使用变量”的提示)。

显然,您可以在 NetBeans 中配置的“未使用变量”的唯一内容是它在编辑器中的样式。工具 > 选项 > 字体和颜色 > 语法 > 语言 = Java > 未使用的元素。

即使它是一个提示(它不是),即使您创建一个勾选“基于提示的任务”框的自定义过滤器,似乎也不可能让所有实际提示显示在“操作项”窗格中。

看起来您最接近的选择是安装 PMD 插件,该插件可以列出项目中所有未使用的变量(以及其他问题)。工具 > 插件 > 可用插件 > 勾选 PMD > 安装。然后使用工具 > 运行 PMD。您可以通过 Tools > Options > Misc > PMD 配置 PMD 的规则。根据我的经验,PMD 不会自动刷新(它是按需刷新的),尽管有一个“启用扫描”选项,它似乎有时会导致自动刷新[对我来说永远不会]。

Source > Inspect 下还有其他用于代码检查的内置工具。NetBeans 有许多内置检查器(包括基于上述“提示”的检查器),并且与 FindBugs 的集成非常容易启用,但是 Source > Inspect 下的这些检查器都没有关于 Unused Variables 的规则。Source > Inspect 也是按需的,并且似乎不会自动刷新。

在此处输入图像描述

于 2013-11-05T00:32:24.323 回答
1

问题是如何在 NetBeans 中显示我认为不可能的警告。但是,要获取所有警告消息,您可以使用带有 flag 的命令行编译程序-Xlint

例子:

javac -Xlint programName.java

这将列出所有警告。

于 2017-06-06T15:50:15.543 回答