Ответ 1
По умолчанию system.in вашей сборки gradle не подключен к system.in задачи run (JavaExec). Вы можете сделать следующее:
run{
standardInput = System.in
}
Я пишу консольное приложение с Java и gradle. Я использую плагин application
и правильно настроил нужные поля в build.gradle
.
В моем основном классе у меня есть BufferedReader
, связанный с System.in
. Здесь проблема: когда я запускаю gradle run
в каталоге проекта, читатель не ждет ввода моего консоли. BufferedReader#readLine
вместо этого возвращает null
при первом вызове. Это поведение нежелательно для того, что я делаю.
Какое решение? Есть ли отдельный плагин для консольного приложения для gradle или мне нужно настроить плагин application
как-то в соответствии с моими потребностями?
По умолчанию system.in вашей сборки gradle не подключен к system.in задачи run (JavaExec). Вы можете сделать следующее:
run{
standardInput = System.in
}
Как указано выше, добавьте
run {
standardInput = System.in
}
и добавьте -q
для запуска в "тихом" режиме (чтобы избежать > Building > :run
)
gradle console:run -q
Источник: https://docs.gradle.org/current/userguide/gradle_command_line.html
Скорее всего, проблема кроется в вашем Java-коде. Весь плагин приложения - это компиляция java-кода и запуск основного указанного вами класса. Можете ли вы опубликовать код в своем основном классе, который вы указали для плагина приложения (mainClassName)?