Aid Learning自從0.80版本開始就自帶Jupyter了。
Termux也可以安裝Python,然後安裝Jupyter,不過要想在Termux使用純種Java,特别是Java使用Jupyter,則必須安裝完整版Linux。
具體介紹如下:
myastrotong:極緻安卓之—Aid Learning基于Jupyter開發Java和Pythonzhuanlan.zhihu.com
myastrotong:把安卓手機性能發揮到極緻之-Termux安裝Python及Jupyterzhuanlan.zhihu.com
myastrotong:極緻安卓之—Termux安裝完整版Linuxzhuanlan.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下面輸出
這個例子表示使用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,輸出結果如下:
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/