Вы можете использовать System.console()
, который возвращает консольный объект, если он подключен к виртуальной машине Java.
Метод возвращает null
, если консоль не подключена.Обратите внимание, что это не на 100% надежно.Например, метод возвращает null
для внутренней консоли в Eclipse IDE (которая фактически является ошибкой # 122429 ).Однако он работает с командной строкой Windows.
Пример может выглядеть следующим образом:
public static void main(String[] args)
{
if (System.console() != null)
{
System.out.println("There is a console!");
}
else
{
JFrame frame = new JFrame("There is no console!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(100, 100);
frame.setVisible(true);
}
}
Выполнение этого в командной строке Windows с java -jar MyJar.jar
приведет к
There is a console!
выводится на консоль.
Двойной щелчок по файлу .jar покажет JFrame
.