2015-07-16 2 views
-1

Я не могу решить проблему два часа. Пожалуйста, помогите мне.java.lang.NullPointerException - System.console()

Мой код:

package work.anart; 
    import java.io.Console; 
    public class Office { 
     public static void main(String[] args) { 
      Console cons = System.console(); 
      cons.printf("\n"); 
       String nbook = "Notebook"; 
       double price = 1.75; 
      cons.printf(" 1 %10s worth %.2f euro \n", nbook, price); 
      cons.printf(" 1 %10s worth %.2f euro \n", nbook, price); 
     } 
    } 

Run:

Exception in thread "main" java.lang.NullPointerException 
    at work.anart.Office.main(Office.java:8) 
Java Result: 1 
+0

Если вы потратили на это 2 часа, вы можете с уверенностью сказать нам об этом больше, чем вставить код. – runDOSrun

+0

Возможный дубликат [Java: как получить входные данные из System.console()] (http://stackoverflow.com/questions/4644415/java-how-to-get-input-from-system-console) –

ответ

2

Ваша программа работает хорошо для меня без errors.I думаю, что вы используете версию меньше Java 1.7, пожалуйста, используйте 1,7 или 1,8, потому что java.io.Console был введен в java 1.7, я чувствую, что вам нужно обновить и проверить простой код на консоли/терминале.

+0

Я тоже так думаю. Я буду обновлять версию Java –

+0

Я написал этот код. 'import java.io.Console; public class Test { public static void main (String [] args) throws Exception { Консоль console = System.console(); if (console == null) { System.out.println («Невозможно получить консоль»); возвращение; } Строка line = console.readLine(); console.printf («Я видел эту строку:% s», строка); } } Он сказал мне: «Невозможно получить консоль» –

+0

У меня есть среда выполнения Java (TM) SE (build 1.8.0_45-b14) –

1

Из документации:

Возвращает уникальный объект консоли, связанный с текущим Java виртуальной> машины , если таковые имеются.

Возврат: Системная консоль, если таковая имеется, в противном случае - null.

Я думаю, у вас нет консоли, связанной с вашей JVM.

Но вы могли бы использовать системы PrintStream так:

public static void main(String[] args){ 
    String nbook = "Notebook"; 
    double price = 1.75; 
    System.out.printf(Locale.ENGLISH, " 1 %10s worth %.2f euro \n", nbook, price); 
} 
+0

Этот код работает, но мне нужно использовать System.console(). В книге задание по этой теме –

+0

Я написал этот код. 'import java.io.Console; public class Test {public static void main (String [] args) throws Exception {Консоль console = System.console(); if (console == null) {System.out.println («Невозможно получить консоль»); вернуть; } Строка строка = console.readLine(); console.printf («Я видел эту строку:% s», строка); }} «Он сказал мне:« Не удалось получить консоль » –

+0

У меня есть среда выполнения Java (TM) SE (сборка 1.8.0_45-b14) –