日常开发中,经常有些探索性的工作需要处理。这类工作更多的是验证可行性,不需要像典型的工程那样遵守目录结构,严格编码,笔记本是做这类工作的良好载体。
jupyter搭建 安装anacondajupyter本来是python平台的工具,拓展之后可以用来运行kotlin(间接运行java),也是挺好用的,比java11的jshell好多了;看来跨语言的相互借鉴还是蛮有意义的。
使用scoop来安装anaconda。
//搜索anaconda scoop search anaconda //全局安装anaconada scoop install -g anaconada安装jupyterlab
打开anaconda prompt命令窗口:
conda search jupyterlab conda install jupyterlab安装kotlin解释器
//安装 conda install -c jetbrains kotlin-jupyter-kernel //卸载 conda remove kotlin-jupyter-kernel
修改默认工作目录为什么不用IJava解释器呢?个人觉得java冗余的语法不适合笔记本编程的体验。
//生成配置文件 jupyter notebook --generate-config //搜索配置项 c.NotebookApp.notebook_dir //配置为默认路径,去掉#解注释,配置项前面无空格 c.NotebookApp.notebook_dir = 'D:jupyter'
删除掉目标框的"%USERPROFILE%"变量
# 使用jupyter生成密码 # 生成的密码保存在~/.jupyter/jupyter_notebook_config.json文件中 jupyter notebook password # 修改配置文件参数 c.NotebookApp.ip='0.0.0.0' c.NotebookApp.password = u'你的密码'安装扩展程序包
# 安装拓展包 pip install jupyter_contrib_nbextensions # 应用拓展包 jupyter contrib nbextension install --user配置主题
# 安装主题 pip install --upgrade jupyterthemes # 查看主题列表 jt -l # 切换主题 jt -t <主题名> -T -N
jupyterlab基本操作个人推荐:gruvboxl,黄色背景,护眼;idea也有同款Gruvbox Theme,配合Material Theme UI很赞。
打开anaconda prompt命令窗口,输入:
jupyterlab
或者点击图标
jupyter服务器运行起来,在浏览器中输入http://localhost:8888/lab即可打开jupyterlab的工作界面。
查看帮助:help使用依赖包 官方依赖包
使用%use语法。
默认版本 %use fuel 指定版本 %use fuel(2.3.1)
其他依赖包默认版本定义在..anaconda32021.11Libsite-packagesrun_kotlin_kernellibraries的json文件中。
指定依赖仓库
@file:Repository()
@file:Repository("*mavenLocal")
指定依赖包
@file:DependsOn()
@file:DependsOn("com.squareup.okhttp3:okhttp:4.9.3")
默认的依赖仓库为:
- Maven Central
- JitPack
查看类路径默认使用maven下载依赖,依赖存放位置:~/.m2
:classpath查看变量表
:vars设置jdk版本
通过配置如下环境变量设置jdk:
- KOTLIN_JUPYTER_JAVA_HOME
- JAVA_HOME
配置jvm参数
- KOTLIN_JUPYTER_JAVA_OPTS
- JAVA_OPTS
配置额外参数
- KOTLIN_JUPYTER_JAVA_OPTS_EXTRA
新建一个kotlin笔记本,打印java相关信息:
System.out.println(System.getProperty("user.home"))
System.out.println(System.getProperty("os.name"))
System.out.println(System.getProperty("java.home"))
System.out.println(System.getProperty("java.version"))
System.out.println(System.getProperty("java.vm.name"))
System.out.println(System.getProperty("java.vm.version"))
System.out.println(System.getProperty("java.vm.vendor"))
jupyter kotlin常用库介绍
使用:help命令可以查看官方收录的库。
http客户端fuel 引入依赖并导入类%use fuel(2.3.1) import com.github.kittinunf.result.* import com.github.kittinunf.fuel.core.*调用百度接口搜索
FuelManager.instance.basePath = "https://www.baidu.com"
Fuel.get("/s", listOf("wd" to "fuel"))
.response()
执行结果如下:
由于时间精力的关系,这里不推荐使用:help里面收录的库,而是直接使用java库,毕竟java本身的库又多又全。使用kotlin jupyter,确实需要学习kotlin的一些基本的语法,但是依赖包尽量还是用java的,减少学习的成本。
kotlin一些必要的语法从另一个角度讲,java本身的库本来就多,学都学不过来,没必要在使用kotlin的第三方库(kotlin标准库还是要了解下);相反,可以把kotlin jupyter作为实验java库的平台,了解并实践java库的入口,甚至,可以用来快速编写并调试一段算法。这些都有助于对java的理解和运用。
- 语句不用写分号
- 新建对象不用new,直接调用构造函数
- 变量前面无需声明类型,用val,var关键字
- 创建数组:arrayOf,intArrayOf,doubleArray,…
- 数组变可变长度参数:变量名前加*
- 创建map:mapOf,mutableMapOf
- 创建list:listOf,mutableListOf
- 创建set:setOf,mutableSetOf
根据官方文档探索真是给力,没有编译时间,不用喝咖啡。
@file:DependsOn("org.knowm.xchart:xchart:3.8.1")
import org.knowm.xchart.*
val xData=doubleArrayOf(0.0,1.0,2.0)
val yData=doubleArrayOf(2.0,1.0,0.0)
val chart=QuickChart.getChart("Sample Chart","x","y","y(x)",xData,yData)
BitmapEncoder.getBufferedImage(chart)
其他
- tablesaw



