Fork me on GitHub

Java 9 JShell

前言

JShell是JDK 9发行版[JEP 222]附带的新命令行交互式REPL (Read-Evaluate-Print-Loop)控制台,用于计算用Java编写的声明、语句和表达式。JShell允许我们执行Java代码片段并立即获得结果,而不必创建解决方案或项目。

在本文中,我们将通过示例学习在JShell中可以完成的各种任务。

正文

运行JShell

首先要做的是将JDK 9安装到您的计算机中。从这个链接下载JDK 9并安装它。

进入安装位置,查看/jdk-9/bin文件夹。我们将在这里找到jshell.exe文件。

upload successful

现在启动一个新的命令窗口并检查java版本。

1
>> java -version

它应该指向JDK 9版本。如果不是,则使用相应的值更新环境属性JAVA_HOMEPATH

1
2
JAVA_HOME=C:\Program Files\Java\jdk-9
PATH=C:\Program Files\Java\jdk-9\bin //Path till bin folder

现在再次启动新的命令提示窗口并输入命令jshell。它将把游标更改为jshell。如下:

upload successful

接下来我们来看下如何在JShell REPL中运行了Java相关代码。

在REPL里编写和运行一段Java代码

Jshell允许创建小的代码片段并对它们进行测试,而不需要创建和构建复杂的项目。这就是它的用法。

在JShell上运行代码片段非常容易,我们来看一下。

变量

我们可以像在实际编程中那样定义变量。唯一不同的是,我们不必一开始就编写一个类或方法。

1
2
jshell> int i = 10;
i ==> 10

要输出变量的值,只需输入变量名并回车。它将输出变量的值。

1
2
jshell> i
i ==> 10

要将变量重新赋值给新值,只需按常规方式执行即可。

1
2
jshell> i=20;
i ==> 20

要列出所有定义的变量,使用 /vars 命令。

1
2
3
jshell> /vars
| int i = 20
| int j = 30

upload successful

方法

和变量一样,方法也很简单。

要在JShell中创建方法,需要定义retrun类型、方法名称、参数和方法体定义方法。不需要访问修饰符。

1
2
3
4
jshell> int sum (int a, int b) {
...> return a+b;
...> }
| created method sum(int,int)

列出所有定义的方法,使用/methods 命令。

1
2
jshell> /methods
| int sum(int,int)

要使用方法,像普通编程那样调用即可。

1
2
jshell> sum(2,2)
$6 ==> 4

如果我们想查看方法源码,使用/list命令即可,它将展示指定方法的源码。

1
2
3
4
5
jshell> /list sum

1 : int sum (int a, int b) {
return a+b;
}

如果想更改方法代码,需要用相同的方法名重写新修改的代码。

1
2
3
4
5
6
7
8
9
10
11
12
jshell> int sum (int a, int b) {
...> int c = a+b;
...> return c;
...> }
| modified method sum(int,int)

jshell> /list sum

3 : int sum (int a, int b) {
int c = a+b;
return c;
}

upload successful

请牢记方法重载规则。如果更改了方法参数数量或它们的数据类型,那么它将是一个新方法,并且将有两个方法在JShell中注册。

在JShell编辑器上编写代码

当只有几行代码时,JShell内联编辑器已经足够好了。但是当代码量开始变大时,我们可能需要一个文件编辑器来修改代码。

这里我们可以使用JShell编辑器。要启动编辑器,使用 /edit命令 + 要编辑的方法名。

upload successful

在这里,根据需要更改方法代码并单击Accept按钮。修改后的代码将在Jshell中更新,我们将在提示中收到确认消息。我们可以随时更改代码,保存它,然后退出窗口。

upload successful

在外部编辑器中编辑代码

自带的编辑器可以满足大多数需要,但如果你喜欢在任何特定的编辑器上编码,你也可以使用它。

JShell允许轻松地配置任何外部编辑器来编辑代码片段。只需要获得我们想要使用的编辑器的完整路径,并在JShell中运行/set editor命令来配置编辑器。

1
/set editor "C:\\Program Files\\Sublime Text 3\\sublime_text.exe"

再次执行/edit命令。它将在sublime编辑器中打开代码。

upload successful

自由编辑代码,并保存。

将外部Java文件加载到REPL

很多时候,我们可能已经在任何java文件中编写了一些代码,希望将其执行到JShell中。

要在JShell中加载文件,使用/open命令。

假设我在c://temp文件夹中有一个Demo.java文件。它的内容是:

1
2
3
4
5
6
7
8
9
10
11
12
int i1 = 10;
int i2 = 20;
int i3 = 30;
int i4 = 40;

int sum(int a, int b) {
return a+b;
}

int sum(int a, int b, int c) {
return a+b;
}

现在让我们把它加载到JShell。

1
/open c:\\temp\\demo.java

可以看到代码被加载到了JShell。

upload successful

结语

以上就是在使用Java 9中JShell我们需要了解的内容。




-------------文章结束啦 ~\(≧▽≦)/~ 感谢您的阅读-------------

SakuraTears wechat
扫一扫关注我的公众号
您的支持就是我创作的动力!
0%