Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 寻找JShell输入解决方案_Java_Java 9_Jshell - Fatal编程技术网

Java 寻找JShell输入解决方案

Java 寻找JShell输入解决方案,java,java-9,jshell,Java,Java 9,Jshell,我正在试用新的JShell程序。我想调试我正在制作的一个交互式控制台应用程序,但它似乎不起作用。例如: [root@mycomputer home]# jdk-9/bin/jshell | Welcome to JShell -- Version 9-ea | Type /help for help -> new Scanner(System.in).next()   它只是冻结在这里,并完全锁定键盘。我必须在另一个终端中终止进程,以便返回提示 正如所指出的,这看起来像是一场灾难

我正在试用新的JShell程序。我想调试我正在制作的一个交互式控制台应用程序,但它似乎不起作用。例如:

[root@mycomputer home]# jdk-9/bin/jshell 
|  Welcome to JShell -- Version 9-ea
|  Type /help for help

-> new Scanner(System.in).next()
 
它只是冻结在这里,并完全锁定键盘。我必须在另一个终端中终止进程,以便返回提示

正如所指出的,这看起来像是一场灾难。有人找到解决办法了吗



我找到的唯一解决方法是将“输入”分配给字符串,并使用接受字符串的
扫描仪

公共扫描仪(字符串源)

构造新的
扫描仪
,以生成 从指定字符串扫描的值



这是一个bug,已经修复(在JDK9发布之前)


我认为这是一个非常令人失望的mlk。我也看不到任何解决办法。我期待着尝试一下,但我想我必须等到这个bug解决了。这只限于JDK 9吗?这个解决方案对我来说并不适用。我得删除很多代码。我一直在尝试将system.in重定向到自定义输入流,并在不同的平台上创建扫描仪thread@flkesJShell并不用于编写复杂的代码部分。它应该用于测试小事情,而不是实现多线程项目。为此,我仍然会使用IDE创建一个测试项目。我不是在jshell中编写代码,只是调试它。我应该能够使用jshell并测试我的api。@flkes我希望它能在下一个版本中修复。
My specs: Redhat x86_64, Gnome-Terminal, Java9 Build 109 
-> String input = "Hello world"
|  Added variable input of type String with initial value "Hello world"

-> Scanner sc = new Scanner(input)
|  Modified variable sc of type Scanner with initial value java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\QNaN\E][infinity string=\Q∞\E]

-> sc.next()
|  Expression value is: "Hello"
|    assigned to temporary variable $5 of type String
jshell> new Scanner(System.in).next()
r
$1 ==> "r"