提问人:Kenny 提问时间:5/13/2023 最后编辑:Kenny 更新时间:7/8/2023 访问量:154
启用 -Xlint 以进行 VSCode Java 编译
Enable -Xlint for VSCode Java Compiling
问:
VSCode 的 Java 扩展在捕获大多数警告方面做得非常出色,但最近我在我的项目中遇到了几个警告,VSCode 没有报告,但我通过使用标志进行编译发现了这些警告。-Xlint
以这个 SSCCE 为例:
public class Test
{
public static void main(String[] args)
{
int x = 3;
int y = (int)x;
System.out.println(y);
}
}
这段代码运行得很好,在 VSCode 中没有警告,但如果你用 编译它,你会得到这个:javac -Xlint Test.java
Test.java:6: warning: [cast] redundant cast to int
int y = (int)x;
^
1 warning
我想要的是一种在 VSCode 中报告这些警告的方法,就像其他警告一样(它们用黄色波浪线突出显示,您可以将其鼠标悬停在上面)。我尝试过,但没有成功,看看是否有办法更改默认的javac编译器参数,但没有找到配置选项(如果存在)。
上面的警告只是 VSCode 似乎没有报告的一个例子。我也通过使用该标志发现了其他警告,例如应该标记为瞬态但并非瞬态的字段。-Xlint
编辑:我在这里打开了 RedHat 的 VSCode Java 扩展的功能请求。
答:
安装 Code Runner 扩展,然后有两种方法可以修改命令
在“设置”面板上搜索,单击
code-runner.executorMap
Edit in settings.json
在打开的settings.json中修改
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
为
"java": "cd $dir && javac -Xlint $fileName && java $fileNameWithoutExt",
右键单击,或在右上角的三角形按钮中选择
Run Code (Ctrl+Alt+N)
Run Code
将以下配置添加到 settings.jsonAdd the following configuration to settings.json
"code-runner.customCommand": "cd $dir && javac -Xlint $fileName && java $fileNameWithoutExt",
使用以下方法执行脚本
Ctrl+Shift+P -->
Run Custom Command (Ctrl+Alt+K)
您可以添加以下设置,以在 TERMINAL 而不是 OUTPUT 面板中使 Code Runner 输出
"code-runner.runInTerminal": true,
一般情况下,我们仍然建议您使用 Java 扩展包,以获得更多的功能和更好的体验。
评论
SonarLint 可能是您所需要的。
SonarLint 是一个易于使用的扩展,可帮助您在编码时查找和修复错误和安全问题。该扩展在后台运行,就像拼写检查器一样,突出显示造成质量或安全问题的源代码问题。该扩展不仅会告诉您问题是什么,还会通过示例提供有关其有害原因以及如何解决该问题的上下文指导。该扩展支持超过 500+ Java 规则,并包含多个快速修复程序以自动修复某些质量问题
评论