2

Me aparece este ejercicio para ingresar datos por teclado, lo transcribí tal cual sale en el libro, pero me marca el error:

"Exception in thread "main" java.lang.NullPointerException"

este es el ejercicio, quisiera saber cuál es el error.

public class DimeTuNombre {
    public static void main(String[] args) {

        String nombre;
        System.out.print("Por favor dime como te llamas: ");
        nombre = System.console().readLine();
        System.out.println("Hola " + nombre + " , ¡ encantado de conocerte !");


    }
}
Shaz
  • 28,742
  • 18
  • 37
  • 61
Jocelyn
  • 29
  • 1
  • 1
    Aunque te cerraron tu pregunta te voy a responder por aquí (ya envié un reporte para reabrirla). Lo que ocurre es que el método `System.console()` no siempre puede retornar una instancia de `Console` puesto que la JVM no siempre tiene asignada una. Esto ocurre generalmente cuando se ejecuta una aplicación desde un IDE o es aplicación con interfaz gráfica. Para corregir esto ejecuta la aplicación por la terminal (fuera de tu IDE). – E. Betanzos Feb 04 '20 at 02:53
  • 2
    @E.Betanzos Esta correctamente marcada como duplicada, no es necesario re-abrirla. – x3k Feb 04 '20 at 07:12
  • @x3kagainstSEbehavior pues discrepo completamente. Si la solución para, o explicación del porqué de, las NPE fuera tan simple como que estás intentando operar sobre una referencia a `null` la [JEP 358: Helpful NullPointerExceptions](https://openjdk.java.net/jeps/358) no se hubiese creado. Este caso es un ejemplo claro que el simple hecho de que te digan que el origen de la excepción es que el método retorna `null` no ayuda en nada. – E. Betanzos Feb 04 '20 at 16:56
  • Dejo un enlace donde posiblemente se extrajo el código. https://github.com/LuisJoseSanchez/aprende-java-con-ejercicios/blob/master/ejemplos/03_Lectura_de_datos_desde_teclado/DimeTuNombre.java –  Feb 05 '20 at 05:33
  • @E.Betanzos La respuesta de la pregunta marcada como duplicada es muy completa. No solo explica que es lo que puede ser, si no por que este tipo de preguntas no es valida para el sitio. `System.console()` puede retornar `null` si se ejecuta en un `IDE`. [Java: How to get input from System.console()](https://stackoverflow.com/questions/4644415/java-how-to-get-input-from-system-console) y [Java: System.console(), IDEs and testing](http://illegalargumentexception.blogspot.com/2010/09/java-systemconsole-ides-and-testing.html) – x3k Feb 05 '20 at 08:00

0 Answers0