Wie krieg ich diese Warnung in Java weg?
Hallo, ich habe die Warnung "Resource leak: '' is never closed" beidem java.util.Scanner, weiß wer warum der da ist?
package schere.stein.papier;
public class SchereSteinPapier {
static void falsch(){
System.out.println("Das hast du nicht so toll gemacht!");
}
public static void main(String[] args){
System.out.println("Hallo, das hier ist ein Schere, Stein, Papier Spiel!");
System.out.println("Schreibe Start, um fortzufahren");
String start = new java.util.Scanner(System.in).nextLine();
System.out.println(start);
if(start.equalsIgnoreCase("Start")){
System.out.println("Das Spiel hat gestartet");
System.out.println("Wähle aus, Stein, Schere oder Papier!");
}
else{
falsch();
}
}
}
4 Antworten
Bekomme immer wieder Fehlermeldungen, egal ob ich nen neuen Scanner anlege oder nicht
Du solltest vorher einen Scanner deklarieren und initialisieren und ihn mit
myScanner.close();
am Ende wieder schließen.
final Scanner scan = new Scanner(System.in);
final String input = scan.nextLine();
handleInput(input);
scan.close();
Normalerweise schließt man den Scanner irgendwann auch wieder ( start.close() )
Uuaaarrrgghh stimmt, du legst keinen Scanner an sich an. Leg ein Scanner Objekt an und schließ dann den Scanner wieder
Dann gibt er mit diesen Fehler aus :/
Exception in thread "main" java.util.NoSuchElementException: No line foundat java.util.Scanner.nextLine(Unknown Source)at schere.stein.papier.SchereSteinPapier.main(SchereSteinPapier.java:43)
Kannst du den Code vielleicht mal bei Pastebin oder so hochladen, das ist übersichtlicher. Mach es mal so, wie oben beschrieben und Importier Java.util, das macht das ganze etwas übersichtlicher.
Das java.util. kannst du beim erzeugen des Scanners dann weg lassen
Exception in thread "main" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at schere.stein.papier.SchereSteinPapier.main(SchereSteinPapier.java:43)
Probiers mal so:
Statt
String start = new java.util.Scanner(System.in).nextLine();
Machst du:
Scanner scan = new java.util.Scanner (System.in);
String start= scan.nextLine ();
scan.close();
Dann bekomme ich einen Fehler
Exception in thread "main" java.util.NoSuchElementException: No line foundat java.util.Scanner.nextLine(Unknown Source)at schere.stein.papier.SchereSteinPapier.main(SchereSteinPapier.java:43)
Irgendwie gewöhnst du dir grade einen schlechten Programmierstil an. Leg a) ein Scanner Objekt an, welches du benutzt und b) importier mal das java.util Package
Bekomme dann die Warnung
The method close() is undefined for the type String