You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中Scanner已关闭仍提示资源泄漏问题求助

解决Scanner已关闭仍提示资源泄漏的问题

你的问题根源是代码里的语法错误,导致编译器认为sc.close()不会被执行到,才出现警告,跟try-catch无关,修正以下两处错误即可:

  • main方法定义多了分号:public static void main (String args[]);{ 这里的分号是多余的,它会让main方法变成空实现,后面的代码块不属于main方法,所以编译器判定sc.close()不在程序执行路径中,触发资源泄漏警告。
  • 数组赋值语法错误:a[]=sc.nextInt(); 应该改为a[i]=sc.nextInt();,否则会直接编译失败。

修正后的完整代码:

import java.util.*;

public class Array{
    public static void main (String args[]){
        int a[]=new int[5];
        Scanner sc=new Scanner(System.in);

        System.out.println("Enter 5 numbers:");
        for(int i=0;i<5;i++){
            a[i]=sc.nextInt();
        }

        System.out.println("You entered:");
        for(int i=0;i<5;i++){
            System.out.println(a[i]);
        }

        sc.close();
    }
}

之前同类代码没出现警告,是因为那些代码没有这类语法错误,sc.close()确实处于正常的执行流程中,编译器能识别到资源被正确关闭。

内容的提问来源于stack exchange,提问作者Gargi Pramanik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:09:54