Как исправить ошибку тайм-аута Java с помощью java.util.Scanner?

Я пытаюсь включить пользовательский ввод в свой код, но продолжаю получать ту же ошибку: «Ошибка: Ошибка команды: тайм-аут 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/компилятора? Если это так, веб-сайт может не понять, почему ваша программа работает так долго (поскольку она ожидает ввода), и досрочно завершает вашу программу, предполагая, что она вышла из строя. Если бы этот код выполнялся локально, он работал бы нормально.

ipodtouch0218 14.08.2024 17:56

Как именно вы запускаете программу? У меня код работает нормально.

Chaosfire 14.08.2024 17:56

Ваш код работает для меня. Что бы ни вызывало эту ошибку, это НЕ что-то в вашем коде.

Sören 14.08.2024 18:15

Это обязательно должна быть онлайн-IDE?

k314159 14.08.2024 23:54

Некоторые онлайн-IDE позволяют указать входные данные перед запуском программы. Найдите кнопку, которая делает это.

k314159 14.08.2024 23:56

Да, это обязательно должно быть онлайн. Кроме того, конкурс моей задачи не позволяет ввести ее раньше.

Everett Holbrook 15.08.2024 16:42

@EverettHolbrook напишите метод, который принимает все входные данные, и напишите для него модульный тест. Входные данные CLI/REPL на самом деле не являются частью бизнес-логики. Это можно абстрагировать. Научитесь разделять проблемы. Нет проблем с локальной установкой JDK и использованием подходящей IDE. Запустите код локально, а затем отправьте его.

Mr. Polywhirl 15.08.2024 17:24

@Mr.Polywhirl, мы должны уважать ответ, что это должна быть онлайн-IDE, поскольку это может быть по ряду причин, например: (1) спрашивающий использует школьный компьютер, и ему не разрешено ничего устанавливать; (2) задавший вопрос изучает информатику и сегодня использует Java, но перестанет использовать его на следующей неделе и вместо этого начнет использовать C++ или Rust, поэтому нет смысла устанавливать что-то только для использования на неделю.

k314159 15.08.2024 17:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
8
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Онлайн-компиляторы Java не являются полнофункциональными IDE и имеют ограниченные возможности. Большинство из них не предлагают интерактивного ввода. Например, https://onecompiler.com/java истекает через 7 секунд при попытке прочитать несуществующий ввод (отсюда и сообщение, которое вы видите).

Один онлайн-компилятор, который предлагает интерактивный ввод, — это https://www.jdoodle.com/online-java-compiler. Вам нужно будет отметить флажок «Интерактивный» справа. Тогда ваше приложение будет работать так, как вы ожидаете.

Это просто статус-кво; вы не можете полагаться на существование таких функций в Интернете, поскольку они могут измениться в будущем. С другой стороны, если вы сможете установить Java Development Kit и IDE на свой локальный компьютер, вы посчитаете их более надежными.

Другие вопросы по теме