JShell

JShell is a Java read-eval-print loop tool first introduced in the JDK 9.[1] It is tracked by JEP 222: jshell: The Java Shell (Read-Eval-Print Loop).[2]

One of the reasons JShell was proposed for Java 9 is that a lot of applications use their own mechanisms to interactively evaluate expressions, and the de facto library to use a Java REPL was often BeanShell, which is a dormant project since 2003, and which made arbitrary changes to the Java language.[3][4]

Example

$ jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

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);
   ...> }
|  created method 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 }

jshell> /exit
|  Goodbye
$

See also

References

  1. "Oracle Announces Java SE 9 and Java EE 8". Oracle Corporation. 2017-09-21. Retrieved 2017-09-25.
  2. "JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)". Oracle Corporation. 2016-10-10. Retrieved 2016-11-01. Provide an interactive tool to evaluate declarations, statements, and expressions of the Java programming language, together with an API so that other applications can leverage this functionality
  3. "JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)". Oracle Corporation. 2016-10-10. Retrieved 2016-11-01. Another alternative is to maintain the status quo: Use another language or use a third-party REPL such as BeanShell, though that particular REPL has been dormant for many years, is based on JDK 1.3, and makes arbitrary changes to the language.
  4. "JShell, the Java 9 REPL – What does it do?". jaxenter.com. 2015-09-03. Retrieved 2016-11-01. BeanShell (just like Groovy, too by the way) made an attempt of standardisation by the Java Community Process in JSR 274 – a JSR that did not produce any notable output, in spite of the fact that (or perhaps because?) two major companies, Sun and Google, had joined the expert group. Under the JCP.next initiative this JSR was declared “Dormant”.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.