java 1.8有没有jshell_Aid learning/Termux之Jupyter的Java编程高级篇——包管理

Aid Learning自从0.80版本开始就自带Jupyter了。

Termux也可以安装Python,然后安装Jupyter,不过要想在Termux使用纯种Java,特别是Java使用Jupyter,则必须安装完整版Linux。

具体介绍如下:

myastrotong:极致安卓之—Aid Learning基于Jupyter开发Java和Python​zhuanlan.zhihu.com
myastrotong:把安卓手机性能发挥到极致之-Termux安装Python及Jupyter​zhuanlan.zhihu.com
myastrotong:极致安卓之—Termux安装完整版Linux​zhuanlan.zhihu.com

安装完Jupyter及IJava以后,就可以在Jupyter环境下愉快的使用Java交互式开发了。

Jupyter的IJava接口实际是基于Java9的JShell或者REPL来执行的。因此官网说只支持Java9及以后的版本,如果你安装的是Java8,就别尝试了,不行!换新版!JDK9、JDK10、JDK11都行的。

Java 9 REPL (JShell)简介

REPL(Read Eval Print Loop)意为交互式的编程环境。

JShell 是 Java 9 新增的一个交互式的编程环境工具。它允许你无需使用类或者方法包装来执行 Java 语句。它与 Python 的解释器类似,可以直接输入表达式并查看其执行结果。

Java Shell工具是JDK1.9出现的工具, Java Shell工具(JShell)是一个用于学习Java编程语言和Java代码原型的交互式工具。

JShell是一个Read-Evaluate-Print循环(REPL),它在输入时评估声明,语句和表达式,并立即显示结果。该工具从命令行运行。

Jupyter之IJava开发高级功能之包管理

本文不介绍Java的简单语法,这些东东可以参考Jshell。本文主要介绍使用Jupyter进行生产力开发需要必备的包管理功能。

大家都知道,学习Java首要的就是包管理。既然使用了Jupyter,与平常的Java程序开发还是有一点不同。本文主要讲述这些“高级”方式。

Jupyter支持maven、pom和本地jar三种方式来管理Java包。以下分别介绍通过这三种管理Java包的方式来编写Java程序。其中前两个方式需要联网。

了解了这三种方式,基本上就不耽误大家正常开发基本的Java程序了。

1、采用maven方式管理包

在jupyter的shell下输入:

%maven org.knowm.xchart:xchart:3.6.0 
import org.knowm.xchart.*;
 
int n=100;
double[]xData=new double[n];
double[]yData=new double[n];
for(int i=0;i<n;i++){
 xData[i]=i*0.1;
 yData[i]=Math.sin(xData[i]);
}
 
XYChart chart=QuickChart.getChart("Sample Chart","X","Y","y(x)",xData,yData);
BitmapEncoder.getBufferedImage(chart);

点击运行,在Jupyter的out下面输出

3abdf2dffbb046b9082e957663e9173c.png

这个例子表示使用xchart 3.6.0包,这个包采用maven直接从网上下载。

%maven org.knowm.xchart:xchart:3.6.0这一行代码就把xchart 3.6.0包从maven官网下载到本地。

因此如果是第一次使用,则需要下载,所以首次运行需要等待,以后运行就快了。

xchart 是一个轻质、高效的Java绘图库。官网为:https://knowm.org/open-source/xchart/

2、基于本地Jar文件导入包

从xchart官网下载两个jar文件:xchart-3.6.0.jar和xchart-demo-3.6.0.jar。然后基于这两个jar文件来绘图。注意这两个包必须与Jupyter文件位于同一个目录下,否则会报错找不到这两个包。

源码如下:

%jars xchart-3.6.0.jar xchart-demo-3.6.0.jar
 
import java.util.Arrays;
import org.knowm.xchart.CategoryChart;
import org.knowm.xchart.CategoryChartBuilder;
import org.knowm.xchart.SwingWrapper;
import org.knowm.xchart.demo.charts.ExampleChart;
import org.knowm.xchart.style.Styler.LegendPosition;
 
/**
 * Basic Bar Chart 
 */
public class BarChart01 implements ExampleChart<CategoryChart> {
 
 public static void main(String[] args) {
 
 ExampleChart<CategoryChart> exampleChart = new BarChart01();
 CategoryChart chart = exampleChart.getChart();
 
 //new SwingWrapper<CategoryChart>(chart).displayChart(); 
 BitmapEncoder.getBufferedImage(chart);
 }
 
 @Override
 public CategoryChart getChart() {
 
 // Create Chart
 CategoryChart chart =
 new CategoryChartBuilder()
 .width(800)
 .height(600)
 .title("Score Histogram")
 .xAxisTitle("Score")
 .yAxisTitle("Number")
 .build();
 
 // Customize Chart
 chart.getStyler().setLegendPosition(LegendPosition.InsideNW);
 chart.getStyler().setHasAnnotations(true);
 chart.getStyler().setPlotGridLinesVisible(false);
 
 // Series
 chart.addSeries("test 1", Arrays.asList(0, 1, 2, 3, 4), Arrays.asList(4, 5, 9, 6, 5));
 
 return chart;
 }
}
  
//BarChart01.main(null);//注意:这种方式不行!画不出图形!
 
ExampleChart<CategoryChart> exampleChart = new BarChart01();
CategoryChart chart = exampleChart.getChart();
 
//new SwingWrapper<CategoryChart>(chart).displayChart();//官网的这种方式不行! 
 BitmapEncoder.getBufferedImage(chart);

运行shell,输出结果如下:

a0061c4db223af6d22da73059aab5937.png

3、基于Maven POM管理包

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

  • 项目依赖
  • 插件
  • 执行目标
  • 项目构建 profile
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

在Jupyter的一个shell里面写入如下pom管理文件:

%%loadFromPOM
<dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-math3</artifactId>
 <version>3.5</version>
</dependency>

首次运行需等待包的下载。

然后在新的一个shell里面运行:

import org.apache.commons.math3.fraction.*;
Fraction.FOUR_FIFTHS.percentageValue()

输出结果:

80.0

本例采用apache的commons-math3数学库。这是一个强大的数值数学和统计数学库。

官网地址为:http://commons.apache.org/proper/commons-math/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值