java jshelllink_交互式编程工具-Jshell

前言

工作中经常遇到需要写一小段代码做一些想法的快速验证,或者API的简单验证,比如文本的处理,简单的json数据的统计或分析。刚开始遇到这种场景,总是在IDE里新建一个测试项目,或者一个测试文件来完成这个工作,但是这样存在一些弊端:操作繁琐,只是简单快速验证的话,没必要用IDE这么重的工具;

效率低,只能不断地通过调试或打印来跟踪代码的执行情况;

这时候就是交互式编程工具的用武之地了。交互式编程工具又称Read-Evaluate-Print Loop,简称REPL,能够立即得到执行结果,并进行下一步的操作。本文总结一下尝试过的几种语言的交互式编程工具。

Jshell

因为对Java比较熟悉,自然首先想到的就是Java版的交互式编程工具 -- Jshell。Jshell是从JDK9开始支持的,可以执行单个语句,也可以导入已有的java文件。安装高于JDK9的版本之后,可直接在命令行中执行jshell来启动, 如需使用第三方包,需要在命令后添加classpath或moudlepath。

~/code/github jshell

| Welcome to JShell -- Version 11

| For an introduction type: /help intro

jshell>

常用命令

jshell提供了一些命令来辅助查看已定义的变量和方法。/vars 查看变量

/list 列出执行过的代码片段

/open 导入代码片段

/help 详细的帮助

/ 可列出所有命令, 其实只需要记住这一个就足够了

jshell> /list

1 : var a = "test for jshell";

3 : print(a)

4 : a

5 : void print(String s){

System.out.println(s);

}

6 : print(a)

jshell> /methods

| void print(String)

jshell> /vars

| String a = "test for jshell"

jshell>

代码片段的执行

然后就可以执行一些代码片段了,执行结果会直接打印出来,如果未定义变量,会生成一个变量名,比如下例中的$11:

jshell> print(a)

test for jshell

jshell> a.split(" ")

$11 ==> String[3] { "test", "for", "jshell" }

jshell> $11

$11 ==> String[3] { "test", "for", "jshell" }

jshell>

优缺点

优点可快速验证Java API

缺点shell下的自动补全和联想机制无法与IDE相媲美

对JDK外第三方包的依赖,需要添加classpath或moudlepath,略显繁琐

Java自身的强类型限制,使得代码没那么简练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值