在VSCode里使用Jupyter Notebook调试Java代码的详细过程
作者:ousinka 发布时间:2022-03-25 07:14:12
之前使用的那台电脑有点旧了,稍微跑一下程序就报内存不够。本来想考虑入手一台带GPU的新电脑,在商品浏览里的时候,考虑到钱包不够厚实。就选了家里另外一台配置稍微高一点的电脑拿来折腾。
平时我个人开发,主要还是在Eclipse上,新环境也装了装。其实平时学习的话,主要还是跑一跑代码段,不会跑大规模的项目,总有一种到楼下买个菜还要开车去的感觉(主要还是考虑费油,不,费内存)。
鉴于VS Code相对轻量,跨平台又满足我平时的折腾;丰富的插件功能,满足不同开发场景的需要。于是,折腾的目标有了,在VS Code中,使用Jupyter Notebook,调试Java代码段,可好?
在网上找了一下,使用VSCode开发Python的有;开发Java的,不多;在VS Code里,使用Jupyter Notebook,写Java代码段的材料,就更不多了。好吧,一套折腾目标有了:VS Code + Jupyter Notebook + Python + IJava,组装一个好玩的开发环境。
什么是Jupyter Notebook?
Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。Jupyter Notebook官方介绍
Jupyter Notebook主要优点
编程时,支持语法高亮、缩进、补全功能。
支持Markdown语法,可以通过富文本对代码进行说明。
支持使用LaTeX编写数学公式等。
所见所得,要以在网页上直接运行代码。
环境准备
Java环境安装,不作详细介绍。注意,需要JDK 9以上版本。我个人使用JDK11。
VS Code安装,同步安装Python、Jupyter、extensions pack for Java插件,不作详细介绍。
Python环境准备,如果是Windows环境,安装Python有点复杂,建议通过Anaconda或Miniconda进行安装。Anaconda包含一些科学计算常用包,相对比较重。Miniconda是最小的conda安装环境,相关于conda+python+pip,比较轻量级,安装也比较快。在这里,我以Anaconda为例
添加conda到系统Path环境变量:
C:\ProgramData\Anaconda3\Scripts
下载 IJava
IJava是在Jupyter内核中执行Java代码的内核。IJava内核通过新的JShell工具执行Java代码。可以通过代码下载,也可以下载编译好的二进制包。目前最新版本为:ijava-1.3.0,具体github地址为:https://github.com/frankfliu/IJava
创建conda虚拟环境
#创建conda虚拟环境,python环境为3.8
conda create -n your_env_name python=3.8
#删除conda 里的虚拟环境
conda remove -n your_env_name --all
搭建运行环境
将下载好的ijava-1.3.0.zip解压开,使用VS Code打开。调出VS Code终端,输入以下命令:
#创建conda虚拟环境,python环境为3.8
conda create -n ijava python=3.8
conda activate ijava
#安装内核
conda install ipykernel
python -m ipykernel install --name ijava <自己取名字可与虚拟环境名字一致>
python install.py
测试
创建HelloWorld.ipynb文件。
在文件里创建一个代码块,选择Java运行环境,点击执行。效果如下:
来源:https://blog.csdn.net/xxcnb/article/details/125709613


猜你喜欢
- 当一个列表项目很多,并且每个项目可以进入到其它Activity或者Fragment时,保存之前列表的位置是一个比较不错的功能,今天研究了一下
- 简介网上对于 Camera2 的介绍有很多,在 Github 上也有很多关于 Camera2 的封装库,但是对于那些库,封装性太强,有时候我
- 本文运用图片给大家介绍了C#如何检查foreach判读其是否为null,我们下面话不多说,直接来看内容吧。1、foreach遍历列表或数组时
- 1、使用AsyncTask异步任务实现,调用publishProgress()方法刷新进度来实现(已优化)public class MyAs
- 前言在一些APP中我们可以看到一些存放标签的容器控件,和我们平时使用的一些布局方式有些不同,它们一般都可以自动适应屏幕的宽度进行布局,根据对
- 1.JavaBean转Map1.1.简介这篇博客是通过反射来进行实现转换的在学习redis中,发现了一个知识点,就是Java对象转map,视
- 概述最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManager参数来改变位
- Scrollview标题栏滑动渐变仿京东样式(上滑显示下滑渐变消失)/** * @ClassName MyScrollView * @Aut
- 本文实例为大家分享了C#异步调用的具体代码,供大家参考,具体内容如下using System;using System.Collection
- 前言公司的邮件系统用的是 * 的 Lotus notes, 你敢信?最近要实现一个功能,邮件提醒功能,就是通过自动发送提醒邮件 前
- 结果映射ResultMap引入resultMap–MyBatis中最强大的元素数据库字段名::实体类字段名:public
- 本文实例讲述了C#使用GZipStream解压缩数据文件的方法。分享给大家供大家参考。具体分析如下:GZipStream用于从一个流读取数据
- 题目题目背景若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。思路对
- 单例模式单例模式顾名思义就是单一的实例,涉及到一个单一的类,该类负责创建自己的对象,同时确保只有一个对象被创建,并且提供一种可以访问这个对象
- 过滤器实现过滤器需要实现 javax.servlet.Filter 接口。重写三个方法。其中 init() 方法在服务启动时执行,destr
- 1 前言单例模式是我们经常使用的一种模式,一般来说很多资料都建议我们写成如下的模式:/** * Created by qiyei2015 o
- 前言这是几个月前写的博文,睡前看了觉得有些敷衍,还是改了再发吧。之前的博客做了个锁屏应用,在以前各种酷炫的锁屏效果是很流行的,有时候会去锁屏
- 前言前不久遇到一个问题,是公司早期的基础库遇到的,其实很低级,但是还是记录下来。出错点是一个 IO 流的写入bug,我们项目会有一种专有的数
- 效果图激活引擎第一步配置APP_ID和SDK_KEY int activeCode = FaceEngine.activeOnline( C
- kotlin基础教程之类和继承类声明使用class关键字声明类,查看其声明格式:: modifiers ("class"