java.util.NoSuchElementException в базовом использовании сканера - PullRequest
1 голос
/ 06 октября 2019

Я хочу получить информацию от пользователя, использующего сканер в моем проекте. Это выдает ту же ошибку, поэтому я создал другой проект, чтобы попробовать только Сканер, но все равно выдает эту ошибку.

Я искал решенные вопросы в stackoverflow, но они имеют большие коды, чем у меня, поэтому, возможно, NoSuchElementException вызвано их кодами,Я имею в виду, не странно ли в простом коде сканера? Более простые коды используются в руководствах по сканерам. Я делаю маленькую вещь неправильно? Вот оно:

package deneme;
import java.util.Scanner;

public class Main {


    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int number1 = input.nextInt();

    }

}

Вывод NetBeans:

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
cd /home/frogwine/NetBeansProjects/deneme; /home/frogwine/.gradle/wrapper/dists/gradle-4.10.2-bin/cghg6c4gf4vkiutgsab8yrnwv/gradle-4.10.2/bin/gradle --configure-on-demand -x check run
Configuration on demand is an incubating feature.
> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE

> Task :run FAILED
Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.Scanner.throwFor(Scanner.java:937)
    at java.base/java.util.Scanner.next(Scanner.java:1594)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
    at deneme.Main.main(Main.java:20)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':run'.
> Process 'command '/usr/lib/jvm/java-11-openjdk-amd64/bin/java'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
2 actionable tasks: 1 executed, 1 up-to-date

Мои данные NetBeans:

Product Version: Apache NetBeans IDE 11.0 (Build incubator-netbeans-release-404-on-20190319)
Updates: Updates available
Java: 11.0.4; OpenJDK 64-Bit Server VM 11.0.4+11-post-Debian-1deb10u1
Runtime: OpenJDK Runtime Environment 11.0.4+11-post-Debian-1deb10u1
System: Linux version 4.19.0-6-amd64 running on amd64; UTF-8; en_US (nb)
User directory: /home/frogwine/.netbeans/11.0
Cache directory: /home/frogwine/.cache/netbeans/11.0

1 Ответ

1 голос
/ 08 октября 2019

Я могу воспроизвести вашу проблему в NetBeans 11.1 К сожалению, это известная проблема. См. Эти отчеты об ошибках NetBeans:

Обе эти ошибки помечены Status: RESOLVED, поскольку решение этой проблемы должно быть включено в следующую версию NetBeans, версия 11.2, которая предварительно запланированадля выпуска позже в этом месяце.

Если вам нужно немедленное решение, есть несколько обходных путей:

  1. Запустите ваше приложение из командной строки, а не из NetBeans. Как вы отметили в комментарии на свой вопрос, это прекрасно работает. Так что с вашим кодом или NetBeans все в порядке;проблема заключается в реализации поддержки Gradle для ввода программ в NetBeans. Неудачный вывод показывает команды, запускаемые из командной строки, поэтому просто скопируйте и вставьте их для удобства.

  2. Загрузите и установите бета-версию NetBeans 11.2. Например, файл netbeans-11.2-beta2-bin.zip отсюда . Я попробовал это, и все работало нормально при вводе числа 54321, а затем отображении значения, которое было прочитано в NetBeans:

    JAVA_HOME = "C: \ Java \ jdk-11" cd D: \ NB112 \gradleproject1;C: \ Users \ johndoe.gradle \ wrapper \ dists \ gradle-4.10.2- bin \ cghg6c4gf4vkiutgsab8yrnwv \ gradle-4.10.2 \ bin \ gradle --configure-on-demand -x run run Настройка по требованию является инкубационной функцией.

    Задача: compileJava UP-TO-DATE Задача: processResources NO-SOURCE Задача: классы UP-TO-DATE 54321

    Задача: прогон number1 = 54321

    СОЗДАЙТЕ УСПЕШНО в 13 с 2 2 выполнимых задания: 1 выполнено, 1 актуально

В качестве отдельного, но связанного с этим вопроса, обратите внимание, что вам также необходимо включитьследующее в вашем build.gradle файле:

run{
    standardInput = System.in
}

Поэтому не забудьте добавить, что ваш проект build.gradle , если его там еще нет. См. Этот SO-ответ для получения дополнительной информации об этом .

...