jupyter 添加 jshell kernel


jdk 9 中加入了新特性 JShell,类似 python 等语言的交互式命令行,对新手开发 java 时试错、调试非常方便,就不用为了一句代码的测试而新建一个文件。但是 jshell 不支持语法高亮、代码提示,所以我更喜欢配置到 jupyter 中,这样服务器启动一个服务常驻在那里,需要使用时打开浏览器即可。

jdk 9/10 都不是 LTS 版本,而 jdk11 是包含 9/10 的新特性的 LTS 版本,下面使用 jdk11 配置 jshell 和 安装 kernel 到 jupyter,简要介绍下 jupyter,其支持语言高亮、提示、区分代码区和 md 文本区。

1. 效果

先看下效果。

  • 高亮:

    image-20200913114229691

  • 提示

    image-20200913114325354

    image-20200913114406856

2. jshell

直接搜索 jdk11,就会出现 Oracle 官方下载链接:Java SE Development Kit 11 Downloads。,下载安装即可,然后配置 JAVA_HOME 和 jdk/bin 到环境变量。对于 windows 如果有多个 java,最好在环境变量中改掉其他版本,如我将 jdk8 的 JAVA_HOME 修改为 JAVA_HOME_8,使 Windows 找不到正确的 jdk8 路径。

jshell 的使用:

  1. 如果正确配置了 jdk/bin 路径,那命令行输入 jshell 就可以进入了。
    注意:Windows 下 jshell 无法正常使用在 65001 的活动代码页,此处我使用 936,可以输出中文,命令:

    chcp 936; jshell
    
  2. 常用命令:
    /imports    # 查看已导入的包
    /exit       # 退出
    

    更多见官方文档:Java Shell User’s Guide

3. 安装为 jupyter kernel

一个实现:SpencerPark/IJava

首先安装 jupyterlab,python : pip install jupyterlab 即可。详细问题与配置见 jupyterlab 官方文档: jupyterlab Doc

安装 jupyter 的 kernel(以下均来自 IJava 作者 repo,详细):

  1. 卸载旧 java kernel:
    jupyter kernelspec remove java
    
  2. 下载 IJava repo 中的 release 包,解压后可以看到 install.py 和 java 目录;

  3. 解压的目录中执行:

    python install.py -h  # 查看帮助
    python install.py     # 没有 python 的 conda 或者虚拟环境,可以不指定其他参数直接安装
    
  4. 检查 kernel 中是否存在:
    jupyter kernelspec list
    

    kernel list 中有 java 表明成功安装,例如我的 list 信息为:

    # potoo at AERO15 in E:\ijava-1.3.0 [11:22:30]
    % jupyter kernelspec list
    Available kernels:
     python3    d:\python37\share\jupyter\kernels\python3
     java       C:\ProgramData\jupyter\kernels\java
    
  5. 启动 jupyterlab:
    jupyter lab ./  # ./ 表示以当前目录为家目录打开 jupyterlab
    

    打开后可以看到下面的界面:

    image-20200913113205535

评论
还没有评论
    发表评论 说点什么