Java 资源泄漏未关闭

Java resource leak not closed

我正在编写一个程序,我希望控制台输出用户输入数字的剩余部分。但是,每次我编译代码时,控制台都会打印出来,并且出现以下控制台错误:

 1 problem (1 warning)
 Compiler is using classPath = '[C:\Users\Darien Springer\Documents\Java,   C:\Users\Darien Springer\Desktop\drjava-beta-20160913-225446.exe]';  bootClassPath = 'null'
 ----------
 1. WARNING in C:\Users\Darien Springer\Documents\Java\PrintDigits.java (at   line 5)
     Scanner scnr= new Scanner(System.in); 
        ^^^^
 Resource leak: 'scnr' is never closed
 ----------
 1 problem (1 warning)

我不确定 "resource leak" 控制台的含义。我在几个不同的地方(包括 API 和其他 Stack Overflow 问题)进行了查找,我不确定为什么没有任何内容打印到控制台。我正在使用程序 DrJava 以防万一有人想知道。

这是我的代码供参考:

import java.util.Scanner;

  public class PrintDigits {
    public static void main(String [] args) {
       Scanner scnr= new Scanner(System.in);
       int userInput = 0;
       int positiveInt = 0;

    System.out.println("enter a positive integer:");
    userInput = scnr.nextInt();

    positiveInt = userInput % 10;
    System.out.println(positiveInt);


 return;
 }
}

该警告只是说您永远不要在代码中的任何地方调用 scnr.close();。要让它消失,只需在使用完扫描仪后致电 scnr.close();

import java.util.Scanner;

public class PrintDigits {
public static void main(String [] args) {
   Scanner scnr= new Scanner(System.in);
   int userInput = 0;
   int positiveInt = 0;

    System.out.println("enter a positive integer:");
    userInput = scnr.nextInt();

    positiveInt = userInput % 10;
    System.out.println(positiveInt);

    scnr.close();
    return;
    }
}