Ну, во-первых ошибка выдается не компилятором, а JRE, т.е. рантаймом. И ошибка говорит о том, что в данный момент никакой консоли с запущенной JVM не ассоциированно.
Чтобы понять причину ошибки - нужно понимать, что консоль не обязательно может присутствовать, о чем, собственно, написано в
джавадоке:
public static Console console()
Returns the unique Console object associated with the current Java virtual machine, if any.
Returns:
The system console, if any, otherwise null.
Если этот же код запустить руками через cmd (или sh) - все будет работать. При запуске же из Intellij Idea - консоль, не ассоциируется. Если нужно чтобы работало и так и так - в качестве воркераунда можно использовать java.util.Scanner, натравив его на System.in, можно даже дописать свой метод со строкой для вывода:
public class Test {
static java.util.Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
readLine("enter code:")
}
private String readLine(String prompt) {
System.out.println(prompt)
return scanner.nextLine()
}
}
Код не проверял, но принцип должен быть понятен.