Java 9 JShell教程
java JShell
是在Java 9版本中引入的命令行工具。
它有助于在单行中执行/测试Java语句。
它是基于的 REPL
(读取评估打印循环)读取代码语句,执行该代码并打印输出,语句。
它读取了该语句,并立即显示下一行的结果。
如果你熟悉 Scala
或者 Python
语言,然后你会了解repl工具。
它是一个强大的工具,允许执行语句、表达式、类、循环、方法等。
我们可以使用它来测试我们的代码或者逻辑,而不将代码写入文件,然后编译它。
它减少了刚检查代码逻辑的努力。
例如,如果我们想打印一个简单的Hello World消息,首先我们需要将代码保存到文件中,然后编译并执行它。
虽然使用jshell,我们写了一个语句并立即获得结果。
将数据保存到文件中需要其他步骤,如编译和执行代码,而JShell在单个步骤中快速执行。
更有理解,让我们举个例子。
public class Test { public static void main(String[] args) { System.out.println("Hello World"); } }
输出
Hello World
使用jshell编写hello world
现在,我们可以很容易地理解JShell比将代码写入文件中具有更多优势。
但它仅帮助执行即时代码。
要创建应用程序,我们必须将源代码保存到文件中。
我们可以用jshell做什么?
我们可以执行包括语句,循环,表达式,类,方法等的代码。
它还提供了多个内置命令来控制JShell环境。
例如,要检查创建的变量,我们可以使用
/vars
命令。
我们将在本文后面讨论这些命令。
如何启动和停止jshell?
要以JShell开头,请在Linux和Mac OS的Windows和Terminal的情况下打开命令提示符,然后键入 jshell
命令。
>jshell
它将在与Java版本的欢迎消息中打开JShell。
如果是Windows,请参阅下面的屏幕截图。
要停止jshell,只需键入/退出命令将带出正常命令提示符。
jshell> /exit | Goodbye
在jshell中创建变量
启动JShell后,让我们创建一些变量并打印它们的值。
jshell> int a = 10; a ==> 10 jshell> int b = 20; b ==> 20 jshell> int multiply = a*b; multiply ==> 200 jshell> System.out.println(multiply); 200 jshell>
如果我们没有提供任何变量并输入任何值,那么 jshell
将保持动态变量中的值。
请参阅此处的示例。
Java自动创建这些变量。
jshell> 30 ==> 30 jshell> 50 ==> 50
JShell作为计算器
我们可以使用JShell作为计算器来获得数字计算的即时结果。
查看示例:
jshell> 10+20 ==> 30 jshell> 10*10 ==> 100 jshell> 200/10 ==> 20 jshell> 20+30+50+40 4 ==> 140
在jshell中创建方法
与变量一样,我们可以创建执行业务逻辑的方法。
jshell> int multiply(int a, int b){ ...> return (a*b); ...> } | created method multiply(int,int) jshell> int result = multiply(10,20); result ==> 200
在jshell创建类
像方法一样,我们也可以通过键入类定义创建类。
这是创建一个名叫类的一个简单示例 Country
jshell> class Country { ...> String name; ...> Country(String name) ...> { ...> this.name=name; ...> } ...> ...> public String getCountryName() ...> { ...> return name; ...> } ...> } created class Country
我们可以声明以下对象:
jshell> Country c1= new Country(“Netherlands"); c1 ==> Country@754ba872 jshell> c1.getCountryName(); ==> “Netherlands"
正如我们所看到的,我们创建了一个名为的国家对象 c1
并调用 getCountryName()
关于它的方法。
在JShell中执行代数表达式
我们可以使用jshell执行任何有效表达式来检查表达式的结果。
jshell> a = 10 a ==> 10 jshell> b = 20 b ==> 20 jshell> (a*a)+(b*b)+2*a*b; //algebraic expression ==> 900
在JShell中执行条件语句
我们可以测试诸如IF的条件语句,以便在JShell中立即检查程序控制流程。
jshell> int a = 20; a ==> 20 jshell> int b = 50; b ==> 50 jshell> if(a<b){ ...> System.out.println(“A is less than B"); ...> }else{ ...> System.out.println(“B is less than A"); ...> } A is less than B jshell>
jshell命令
除了执行Java代码外,JShell提供了一些内置命令来处理代码。
他们中的一些我们在这里讨论。
列出变量
要检查我们当前会话的所有创建变量,我们可以使用/vars命令。
它将填充所有变量。
jshell> /vars | int sum = 30 | int = 30 | int = 50 | int = 30 | int = 100 | int = 20 | int = 140 | int result = 30 | int = 900 | int a = 20 | int b = 50
列出方法
要获取当前会话中所有创建的方法的列表,请使用/方法命令。
jshell> /methods | int multipy(int,int) jshell>
导入Java软件包
在启动JShell期间,它默认导入某些软件包以向用户提供基本函数。
我们可以使用/导入命令查看这些默认包。
jshell> /import | import java.io.* | import java.math.* | import java.net.* | import java.nio.file.* | import java.util.* | import java.util.concurrent.* | import java.util.function.* | import java.util.prefs.* | import java.util.regex.* | import java.util.stream.* jshell>
检查命令历史记录
要检查命令的历史,我们已经执行了到目前为止,我们可以使用 /history
命令。
jshell> /import int a=10; int b=20; int multiply=a*b; System.out.println(multiply); int multiply(int a,int b){ return (a*b); } jshell>
编辑jshell编辑垫中的代码
如果我们只需要编写几行代码,我们可以使用内联编辑器。
但是当你想编写相当短的代码时,那么你可以 /edit
命令要更改代码。
例如:假设我们要编辑方法 multiply()
, 我们可以使用 /edit multiply
命令。
jshell> /edit multiply
我们将看到下面的JShell编辑垫,我们可以其中进行更改。
完成更改后,我们可以单击 Accept
按钮接受更改。
将外部Java代码加载到JShell
我们还可以使用外部文件的加载代码 /open
命令。
让我们在举例的帮助下看:这里是文件c://divide.java的内容
int x=10; int y=2; int divide(int a,int b) { return a/b; }
现在我们可以使用以下命令加载文件。
jshell> /open C://divide.java
正如我们可以看到变量 x
那 y
和方法 divide
加载到JShell中。
删除变量,方法,jshell类
我们可以使用JShell删除变量,方法,类 /drop
命令。
让我们说你想要删除方法 divide
来自jshell。
我们可以使用以下命令
现在我们可以使用以下命令加载文件。
jshell> /drop divide | dropped method divide(int,int)
正如我们所看到的,方法 divide()
加载到jshell中。
jshell帮助
我们可以用 /help
命令以获取有关命令的更多信息。