Я пытаюсь включить пользовательский ввод в свой код, но продолжаю получать ту же ошибку: «Ошибка: Ошибка команды: тайм-аут 7 Java Main.java». Я пробовал использовать различные онлайн-IDE. Все выдают эту ошибку. Есть ли тот, который я мог бы использовать, который не выдает эту ошибку?
Вот мой код:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("What is your name?");
String name = scan.nextLine();
System.out.print("Hello " + name);
}
}
Как именно вы запускаете программу? У меня код работает нормально.
Ваш код работает для меня. Что бы ни вызывало эту ошибку, это НЕ что-то в вашем коде.
Это обязательно должна быть онлайн-IDE?
Некоторые онлайн-IDE позволяют указать входные данные перед запуском программы. Найдите кнопку, которая делает это.
Да, это обязательно должно быть онлайн. Кроме того, конкурс моей задачи не позволяет ввести ее раньше.
@EverettHolbrook напишите метод, который принимает все входные данные, и напишите для него модульный тест. Входные данные CLI/REPL на самом деле не являются частью бизнес-логики. Это можно абстрагировать. Научитесь разделять проблемы. Нет проблем с локальной установкой JDK и использованием подходящей IDE. Запустите код локально, а затем отправьте его.
@Mr.Polywhirl, мы должны уважать ответ, что это должна быть онлайн-IDE, поскольку это может быть по ряду причин, например: (1) спрашивающий использует школьный компьютер, и ему не разрешено ничего устанавливать; (2) задавший вопрос изучает информатику и сегодня использует Java, но перестанет использовать его на следующей неделе и вместо этого начнет использовать C++ или Rust, поэтому нет смысла устанавливать что-то только для использования на неделю.
Онлайн-компиляторы Java не являются полнофункциональными IDE и имеют ограниченные возможности. Большинство из них не предлагают интерактивного ввода. Например, https://onecompiler.com/java истекает через 7 секунд при попытке прочитать несуществующий ввод (отсюда и сообщение, которое вы видите).
Один онлайн-компилятор, который предлагает интерактивный ввод, — это https://www.jdoodle.com/online-java-compiler. Вам нужно будет отметить флажок «Интерактивный» справа. Тогда ваше приложение будет работать так, как вы ожидаете.
Это просто статус-кво; вы не можете полагаться на существование таких функций в Интернете, поскольку они могут измениться в будущем. С другой стороны, если вы сможете установить Java Development Kit и IDE на свой локальный компьютер, вы посчитаете их более надежными.
Вы выполняете свою программу на онлайн-сайте IDE/компилятора? Если это так, веб-сайт может не понять, почему ваша программа работает так долго (поскольку она ожидает ввода), и досрочно завершает вашу программу, предполагая, что она вышла из строя. Если бы этот код выполнялся локально, он работал бы нормально.