使用 VS code + Oracle java 插件搭建java语言原生的notebook环境, 相较于基于Juypter的方案, 有更好的LSP语言提示, 更快的运行速度.
注意插件是 Oracle 出品的那个 java 插件, 如果已经安装了Redhat或微软的 Java 扩展,最好卸载, 以免与Oracle java插件命令和配置混淆。
安装和配置Oracle java插件
- 安装 Java 扩展, 注意选择 Oracle 出品的那个。 只有 Oracle java 插件原生支持 notebook 功能, 它并不依赖Python Juypter环境.
- 在VS code命令面板输入 JDK 字样,可以找到 JDK Downloader, 可以自动下载Oracle JDK 或 Open JDK, 下载并按照即可。
- 在VS code命令面板输入 JDK 字样,可找到 Select an installed JDK, 选择Java插件绑定哪个JDK 。
- 如有必要设置 maven 私服地址
在 vscode oracle-java 插件安装目录下搜索 maven\conf\settings.xml, 在文件中设置私服地址。
使用 Oracle java 插件编写简单程序
- 在VS code命令面板输入 Java 字样,选择创建一个 maven 项目,包含一个 pom.xml 和 主程序 java 文件。
- 运行和调试: 在主程序 java 文件的 main 方法上方, 会有 Run main和Debug main的镶嵌命令,可以运行或调试。
- 编译: 在VS code命令面板输入 Java 字样,可以选择 compile workspace。
使用 Oracle java 插件编写notebook
- 使用vs code打开一个已有的 java 项目中
- 在VS code命令面板输入 Java 字样,选择创建 notebook 命令, 即会生成一个ijnb 文件。
- 在 notebook 的 java cell中,输入一个 hello world测试一下。
System.out.print("hello world");
- pom中引入一个外部jar包。 比如引入 hutool。
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.44</version></dependency>
- 通过VS code 命令 java compile workspace, 触发下载外部 jar 包
- 通过vscode 命令 reload window, reload notebook 以便当前notebook文件可以引入pom新下载的jar
- 在 notebook 的 java cell 导入 hutool 的 StrUtil测试。
import cn.hutool.core.util.StrUtil;
String hello=StrUtil.upperFirst("hello world");
System.out.print(hello);
搭建一个数据分析工具箱
- 引入 tablesaw、tablesaw plotly类库, 它们提供类似于 pandas 和matplotlib的功能
- 引入 duckdb 类库, 读取 csv/parquet 文件, 使用sql进行数据分析处理.
- (可选)引入 DFLib 类库, 相比 tablesaw 功能较弱, 也是另一个类似 pandas dataframe 功能的类库, 但chart现实功能较弱.
- (可选)优化算法库 jMetal
- (可选)计算学习算法库 smile/tribuo/Weka 等
说明: duckdb/tablesaw/DFLib都可访问csv等外部数据源, duckdb可使用sql进行数据处理, tablesaw/DFLib可使用data frame的方式进行数据处理, 另外tablesaw/DFLib都可通过jdbc访问db, 所以可以结合sql和dataframe两者的优势进行数据处理.
资料
https://github.com/jtablesaw/tablesaw
https://jtablesaw.github.io/tablesaw/
https://dflib.org/
https://jmetal.readthedocs.io/
https://haifengl.github.io/overview.html
https://tribuo.org/learn/4.3/docs/
