Loading article…
JShell は、 JDK 9で初めて導入されたJava のread-eval-print ループです。[ 1 ]これはJEP 222 jshell: The Java Shell (Read-Eval-Print Loop)で追跡されています。[ 2 ] JShell が Java 9 で提案された理由の 1 つは、この言語の標準的な対話型環境がなかったことです。Java REPL を使用するための事実上のライブラリはBeanShellでしたが、これは 2003 年以降休止状態であり、Java 言語から恣意的に分岐していました。[ 3 ] [ 4 ]
jshell> int a[] = { 0, 1, 3, 5, 8 } a ==> int[5] { 0, 1, 3, 5, 8 } jshell> int fact(int n) { ...> return n < 2 ? 1 : n * fact(n - 1); ...> } | メソッド fact(int) を作成しました jshell> for (int i = 0; i < a.length; ++i) ...> a[i] = fact(a[i]); jshell> a a ==> int[5] { 1, 1, 6, 120, 40320 } Javaプログラミング言語の宣言、ステートメント、および式を評価するための対話型ツールと、他のアプリケーションがこの機能を利用できるAPIを提供する。
別の選択肢は現状維持です。別の言語を使用するか、BeanShell などのサードパーティ REPL を使用します。ただし、この特定の REPL は長年休止状態であり、JDK 1.3 に基づいており、言語に任意の変更を加えます。
(ちなみに Groovy も同様) は、Java Community Process による JSR 274 で標準化を試みたが、Sun と Google という 2 つの大手企業が専門家グループに参加したにもかかわらず (あるいは、そのせいで?)、この JSR は特に目立った成果を生み出さなかった。JCP.next イニシアチブの下で、この JSR は「休止状態」と宣言された。