来自 Visual Studio 和 Eclipse,如何找出所有编译器警告,例如整个项目的未使用变量。这似乎是一件微不足道的事情,但找不到它。我可以在“操作项”窗口中找出所有错误,但不是所有警告。
3 回答
这似乎是不可能的。有一个开放的错误报告: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 插件即可充分利用它。检查对话框将警告插件丢失并为您安装。
老实说,这似乎是不可能的。“未使用的变量”甚至不是一流的“提示”(您可以在“工具”>“选项”>“编辑器”>“提示...”下看到提示,并注意没有基于“未使用变量”的提示)。
显然,您可以在 NetBeans 中配置的“未使用变量”的唯一内容是它在编辑器中的样式。工具 > 选项 > 字体和颜色 > 语法 > 语言 = Java > 未使用的元素。
即使它是一个提示(它不是),即使您创建一个勾选“基于提示的任务”框的自定义过滤器,似乎也不可能让所有实际提示显示在“操作项”窗格中。
看起来您最接近的选择是安装 PMD 插件,该插件可以列出项目中所有未使用的变量(以及其他问题)。工具 > 插件 > 可用插件 > 勾选 PMD > 安装。然后使用工具 > 运行 PMD。您可以通过 Tools > Options > Misc > PMD 配置 PMD 的规则。根据我的经验,PMD 不会自动刷新(它是按需刷新的),尽管有一个“启用扫描”选项,它似乎有时会导致自动刷新[对我来说永远不会]。
Source > Inspect 下还有其他用于代码检查的内置工具。NetBeans 有许多内置检查器(包括基于上述“提示”的检查器),并且与 FindBugs 的集成非常容易启用,但是 Source > Inspect 下的这些检查器都没有关于 Unused Variables 的规则。Source > Inspect 也是按需的,并且似乎不会自动刷新。
问题是如何在 NetBeans 中显示我认为不可能的警告。但是,要获取所有警告消息,您可以使用带有 flag 的命令行编译程序-Xlint
。
例子:
javac -Xlint programName.java
这将列出所有警告。