Erro com comando DO

4 respostas
S

Bom estou estudando os comandos em java e tive um erro no seguinte codigo:

package del;

import java.util.Scanner;
import java.io.IOException;
public class Main {

    public static void main(String args[]) 
        throws IOException {

        Scanner myScanner = new Scanner(System.in);
        char reply;

        do {
            System.out.print("Reply with Y or N...");
            System.out.print("  Delete all .keep files? ");
            reply = myScanner.findInLine(".").charAt(0);
        } while (reply != 'Y' && reply != 'N');

        if (reply == 'Y') {
            Runtime.getRuntime().exec("cmd /c del *.keep");
        }
    }
}

Quando quero deletar os arquivos ".keep", o programa conclui sem erros, mas quando a opcao WHILE eh ativada (se eu escrever por exemplo "s" (while (reply != 'Y' && reply != 'N');))
da o seguinte erro:

run:
Reply with Y or N...  Delete all .keep files? 
s
Exception in thread "main" java.lang.NullPointerException
        at del.Main.main(Main.java:21)
Reply with Y or N...  Delete all .keep files? 
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)

Eu uso o Netbeans, obrigado.

4 Respostas

pmlm

Muda a linha para:

reply = myScanner.next().charAt(0);
S

Agora o programa nem leu o system.out… ele conclui direto, eu nem consigo escrever, ele fecha o programa direto

pmlm
Scanner myScanner = new Scanner(System.in);  
char reply;  
  
do {  
    System.out.print("Reply with Y or N...");  
    System.out.print("  Delete all .keep files? ");  
    reply = myScanner.next().charAt(0);  
} while (reply != 'Y' && reply != 'N');  
   
if (reply == 'Y') {  
    Runtime.getRuntime().exec("cmd /c del *.keep");  
}
Funciona direitinho aqui.
S

Deu certo sim cara, mais por favor vc pode explicar qual foi o meu erro, porque nao posso usa o findinline?

Criado 16 de junho de 2009
Ultima resposta 18 de jun. de 2009
Respostas 4
Participantes 2