Home  >  Article  >  Java  >  How does JShell tooling work internally in Java 9?

How does JShell tooling work internally in Java 9?

WBOY
WBOYforward
2023-08-26 23:05:02740browse

JShell工具在Java 9中的内部工作原理如何?

JShell tool was introduced in Java 9, providing a fast and friendly environment that allows us to quickly explore and discover and experiment with Java language features and extensive libraries.

When code is entered into the JShell console, it will be JLine processed. It is a Java library that allows us to capture on the console. Once the code is entered, it is parsed by the JShell parser to determine its type (methods, variables, etc.).

The JShell parser is wrapped in a class with the following rules:

  • All import statements are placed at the top of this class.
  • Variables, methods, and class declarations become static members of this class.
  • Expressions and declarations are wrapped in a method of this class.

After this step, the generated source code is analyzed and compiled into bytecode by the Java compiler and then sent to the running JVM Process to load and execute code.

In the code snippet below, we can launch the JShell tool by simply typing "jshell" in the command line prompt.

<strong>C:\Users\User>jshell
|   Welcome to JShell -- Version 9.0.4
|   For an introduction type: /help intro
jshell> </strong>

When JShell starts, we have a command prompt waiting for input. There are two types of commands that can be entered: JShell internal commands starting with "/", and Java code.

In the following code snippet, we can print out internal commands such as "/list" and Java code such as System.out.println().

<strong>jshell> System.out.println("Tutorialspoint")
Tutorialspoint

jshell> /list
   1 : System.out.println("Tutorialspoint")</strong>

The above is the detailed content of How does JShell tooling work internally in Java 9?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete