java 执行shell 卡住_Aid learning/Termux之Jupyter的Java编程高级篇——包管理
Aid Learning自從0.80版本開始就自帶Jupyter了。
Termux也可以安裝Python,然后安裝Jupyter,不過要想在Termux使用純種Java,特別是Java使用Jupyter,則必須安裝完整版Linux。
具體介紹如下:
myastrotong:極致安卓之—Aid Learning基于Jupyter開發(fā)Java和Python?zhuanlan.zhihu.commyastrotong:把安卓手機性能發(fā)揮到極致之-Termux安裝Python及Jupyter?zhuanlan.zhihu.commyastrotong:極致安卓之—Termux安裝完整版Linux?zhuanlan.zhihu.com安裝完Jupyter及IJava以后,就可以在Jupyter環(huán)境下愉快的使用Java交互式開發(fā)了。
Jupyter的IJava接口實際是基于Java9的JShell或者REPL來執(zhí)行的。因此官網(wǎng)說只支持Java9及以后的版本,如果你安裝的是Java8,就別嘗試了,不行!換新版!JDK9、JDK10、JDK11都行的。
Java 9 REPL (JShell)簡介
REPL(Read Eval Print Loop)意為交互式的編程環(huán)境。
JShell 是 Java 9 新增的一個交互式的編程環(huán)境工具。它允許你無需使用類或者方法包裝來執(zhí)行 Java 語句。它與 Python 的解釋器類似,可以直接輸入表達(dá)式并查看其執(zhí)行結(jié)果。
Java Shell工具是JDK1.9出現(xiàn)的工具, Java Shell工具(JShell)是一個用于學(xué)習(xí)Java編程語言和Java代碼原型的交互式工具。
JShell是一個Read-Evaluate-Print循環(huán)(REPL),它在輸入時評估聲明,語句和表達(dá)式,并立即顯示結(jié)果。該工具從命令行運行。
Jupyter之IJava開發(fā)高級功能之包管理
本文不介紹Java的簡單語法,這些東東可以參考Jshell。本文主要介紹使用Jupyter進(jìn)行生產(chǎn)力開發(fā)需要必備的包管理功能。
大家都知道,學(xué)習(xí)Java首要的就是包管理。既然使用了Jupyter,與平常的Java程序開發(fā)還是有一點不同。本文主要講述這些“高級”方式。
Jupyter支持maven、pom和本地jar三種方式來管理Java包。以下分別介紹通過這三種管理Java包的方式來編寫Java程序。其中前兩個方式需要聯(lián)網(wǎng)。
了解了這三種方式,基本上就不耽誤大家正常開發(fā)基本的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直接從網(wǎng)上下載。
%maven org.knowm.xchart:xchart:3.6.0這一行代碼就把xchart 3.6.0包從maven官網(wǎng)下載到本地。
因此如果是第一次使用,則需要下載,所以首次運行需要等待,以后運行就快了。
xchart 是一個輕質(zhì)、高效的Java繪圖庫。官網(wǎng)為:https://knowm.org/open-source/xchart/
2、基于本地Jar文件導(dǎo)入包
從xchart官網(wǎng)下載兩個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();//官網(wǎng)的這種方式不行! BitmapEncoder.getBufferedImage(chart);運行shell,輸出結(jié)果如下:
3、基于Maven POM管理包
POM( Project Object Model,項目對象模型 ) 是 Maven 工程的基本工作單元,是一個XML文件,包含了項目的基本信息,用于描述項目如何構(gòu)建,聲明項目依賴,等等。
執(zhí)行任務(wù)或目標(biāo)時,Maven 會在當(dāng)前目錄中查找 POM。它讀取 POM,獲取所需的配置信息,然后執(zhí)行目標(biāo)。
POM 中可以指定以下配置:
- 項目依賴
- 插件
- 執(zhí)行目標(biāo)
- 項目構(gòu)建 profile
- 項目版本
- 項目開發(fā)者列表
- 相關(guān)郵件列表信息
在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()輸出結(jié)果:
80.0本例采用apache的commons-math3數(shù)學(xué)庫。這是一個強大的數(shù)值數(shù)學(xué)和統(tǒng)計數(shù)學(xué)庫。
官網(wǎng)地址為:http://commons.apache.org/proper/commons-math/
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的java 执行shell 卡住_Aid learning/Termux之Jupyter的Java编程高级篇——包管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京大学计算机系 丁主任,丁骋、李时新参
- 下一篇: 计算机文字处理操作题33,2017年国家