java 执行shell 卡住_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.commyastrotong:把安卓手機性能發揮到極致之-Termux安裝Python及Jupyter?zhuanlan.zhihu.commyastrotong:極致安卓之—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下面輸出
這個例子表示使用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.jarimport 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);}@Overridepublic CategoryChart getChart() {// Create ChartCategoryChart chart =new CategoryChartBuilder().width(800).height(600).title("Score Histogram").xAxisTitle("Score").yAxisTitle("Number").build();// Customize Chartchart.getStyler().setLegendPosition(LegendPosition.InsideNW);chart.getStyler().setHasAnnotations(true);chart.getStyler().setPlotGridLinesVisible(false);// Serieschart.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/
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的java 执行shell 卡住_Aid learning/Termux之Jupyter的Java编程高级篇——包管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京大学计算机系 丁主任,丁骋、李时新参
- 下一篇: java sqlite 创建_关于Jav