提问人:threeweeksearlier 提问时间:1/12/2023 更新时间:1/12/2023 访问量:34
JShell:使用 /open 时扫描程序 nextLine() NoSuchElementException
JShell: Scanner nextLine() NoSuchElementException when using /open
问:
使用 JShell 的 /open 命令打开 Java 文件并运行代码时,用户输入不适用于 Scanner。当它到达 nextLine() 方法时,它总是会抛出一个 NoSuchElementException。有谁知道为什么会这样,是否有我错过的修复/解决方法?
重现步骤:
- 使用以下代码创建 Java 文件(例如,test.java):
Scanner scanner = new Scanner(System.in)
String input = scanner.nextLine();
- 打开 JShell
- 跑
/open test.java
我已经看过这个答案,但是使用 --execution local 并没有解决我的问题。调用然后更接近程序停止用户输入的地方,但随后 shell 似乎冻结了,我无法输入任何内容。调用似乎确实有效,但是在运行文件后,它使您保持在 JShell 中(其中 /open 命令不起作用),并且必须不断退出 JShell 才能重新运行文件真的很不方便。另一种方法是让每个脚本都以 结尾,但我真的不明白为什么像用户输入这样基本的东西似乎如此错误。jshell --execution local
/open test.java
jshell --execution local test.java
System.exit(0);
我正在使用 OpenJDK 版本 17.0.5。
通常这没什么大不了的,但我希望使用 JShell 作为教学工具......但这些输入问题/不便与我有关。任何帮助都非常感谢!
答: 暂无答案
评论