摘要:等同于真正無(wú)提示反饋。等同于詳細(xì)反饋。等同于標(biāo)記直接將標(biāo)記傳遞到運(yùn)行時(shí)系統(tǒng)。為每個(gè)遠(yuǎn)程標(biāo)記或標(biāo)記參數(shù)使用一個(gè)標(biāo)記將標(biāo)記傳遞到編譯器。
為什么要用jshell
在IDE中創(chuàng)建一個(gè)項(xiàng)目來(lái)研究和學(xué)習(xí)框架太重量級(jí)了, 我需要一個(gè)輕量的解決方案. 調(diào)用一個(gè)方法, 它可以馬上在終端中打印返回值的內(nèi)容.
Jshell 是一個(gè)(REPL)交互式解釋器, 一般作為學(xué)習(xí)如何使用類(lèi)的練習(xí)場(chǎng), 方法. 可以立即看到輸出結(jié)果, 而不需要?jiǎng)?chuàng)建一個(gè)重量級(jí)的Java項(xiàng)目來(lái)學(xué)習(xí)如何調(diào)用類(lèi)的方法.
因?yàn)槲矣袧嶑? 我喜歡保持工程目錄干凈整潔, 我不喜歡在我正式的項(xiàng)目中去練習(xí)如何使用框架的代碼.
JShell 是JDK9的一個(gè)新功能. 我們?nèi)绾伟阉蚆aven結(jié)合起來(lái)了.原理很簡(jiǎn)單, 那就是CLASSPATH.
jshell 有一個(gè) --class-path 參數(shù)可以指定 jar 包的位置, 因此, 我們需要知道Maven項(xiàng)目中所有依賴(lài)
? / jshell -h 用法: jshell <選項(xiàng)> <加載文件> 其中, 可能的選項(xiàng)包括: --class-path <路徑> 指定查找用戶(hù)類(lèi)文件的位置 --module-path <路徑> 指定查找應(yīng)用程序模塊的位置 --add-modules <模塊>(,<模塊>)* 指定要解析的模塊; 如果 <模塊> 為 ALL-MODULE-PATH, 則為模塊路徑中的所有模塊 --startup <文件> 對(duì)啟動(dòng)定義執(zhí)行單次替換 --no-startup 不運(yùn)行啟動(dòng)定義 --feedback <模式> 指定初始反饋模式。該模式可以是 預(yù)定義的 (silent, concise, normal 或 verbose), 也可是以前用戶(hù)定義的 -q 無(wú)提示反饋。等同于: --feedback concise -s 真正無(wú)提示反饋。等同于: --feedback silent -v 詳細(xì)反饋。等同于: --feedback verbose -J<標(biāo)記> 直接將 <標(biāo)記> 傳遞到運(yùn)行時(shí)系統(tǒng)。 為每個(gè)運(yùn)行時(shí)標(biāo)記或標(biāo)記參數(shù)使用一個(gè) -J -R<標(biāo)記> 將 <標(biāo)記> 傳遞到遠(yuǎn)程運(yùn)行時(shí)系統(tǒng)。 為每個(gè)遠(yuǎn)程標(biāo)記或標(biāo)記參數(shù)使用一個(gè) -R -C<標(biāo)記> 將 <標(biāo)記> 傳遞到編譯器。 為每個(gè)編譯器標(biāo)記或標(biāo)記參數(shù)使用一個(gè) -C --version 輸出版本信息并退出 --show-version 輸出版本信息并繼續(xù) --help 輸出標(biāo)準(zhǔn)選項(xiàng)的此提要并退出 --help-extra, -X 輸出非標(biāo)準(zhǔn)選項(xiàng)的幫助并退出如何知道Maven項(xiàng)目中的CLASSPATH呢?
這樣玩!
mvn dependency:build-classpath -DincludeTypes=jar -Dmdep.outputFile=classpath.txt
CLASSPATH 就輸出到 classpath.txt 文件中了.
然后通過(guò)這個(gè)文件來(lái)向jshell說(shuō)明CLASSPATH. 這樣我們就可以把jshell和maven項(xiàng)目集成到一起了.
下面是一個(gè)完整的腳本. 一般放在Maven項(xiàng)目的根目錄下:
#!/bin/bash if [ ! -d "target" ]; then echo "Please run it under a module directory. And make sure it"s not parent module directory. And make a maven install first" exit fi mvn dependency:build-classpath -DincludeTypes=jar -Dmdep.outputFile=classpath.txt jshell --class-path `cat classpath.txt`:target/classes "$@"
保存到Maven項(xiàng)目的根目錄, 名稱(chēng)為 jshell.sh
最后sh> ./jshell.sh
來(lái)玩一個(gè) SpringBoot 的 UriComponentsBuilder的例子
jshell> import org.springframework.web.util.* jshell> UriComponentsBuilder b = UriComponentsBuilder.newInstance() b ==> org.springframework.web.util.UriComponentsBuilder@544a2ea6 jshell> b.scheme("https") $6 ==> org.springframework.web.util.UriComponentsBuilder@544a2ea6 jshell> b.host("segmentfault.com") $7 ==> org.springframework.web.util.UriComponentsBuilder@544a2ea6 jshell> b.build() $8 ==> https://segmentfault.com jshell> b.pathSegment("u") $9 ==> org.springframework.web.util.UriComponentsBuilder@544a2ea6 jshell> b.build() $10 ==> https://segmentfault.com/u jshell> b.pathSegment("developerworks") $11 ==> org.springframework.web.util.UriComponentsBuilder@544a2ea6 jshell> b.build() $12 ==> https://segmentfault.com/u/developerworks jshell> b.queryParam("hello", "developerworks") $13 ==> org.springframework.web.util.UriComponentsBuilder@544a2ea6 jshell> b.build() $14 ==> https://segmentfault.com/u/developerworks?hello=developerworks
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69096.html
摘要:新特性概述系列一安裝及使用系列二運(yùn)行系列三模塊系統(tǒng)精要系列四更新系列五系列六系列七系列八系列九與的區(qū)別遷移注意事項(xiàng)參數(shù)遷移相關(guān)選項(xiàng)解析使用構(gòu)建實(shí)例使用示例帶你提前了解中的新特性 Java語(yǔ)言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的新特性 Java10的新特性 Java11的新特性 Java12的新特性 Java13的新特性...
摘要:什么是項(xiàng)目是第一個(gè)官方的的縮寫(xiě),即交互式編程環(huán)境,是一種命令行工具。它允許你無(wú)需編寫(xiě)類(lèi)或者方法來(lái)執(zhí)行語(yǔ)句。它與的解釋器或其它本地支持的語(yǔ)言,如和類(lèi)似。在即將到來(lái)的的特性中,這絕對(duì)是更有趣的特性之一。 什么是JShell? JShell/Kulla項(xiàng)目是第一個(gè)官方的Java REPL (Read-Eval-Print-Loop的縮寫(xiě),即交互式編程環(huán)境),是一種命令行工具。它允許你無(wú)需編寫(xiě)...
摘要:概述是一個(gè)主要版本的發(fā)布這里介紹的是對(duì)的特性和增強(qiáng)的實(shí)現(xiàn)是的增強(qiáng)提案,包括增強(qiáng)建議和路線(xiàn)圖流程規(guī)范請(qǐng)求,描述了針對(duì)平臺(tái)的建議和最終規(guī)范主要變更統(tǒng)一模塊化標(biāo)準(zhǔn)這是全新的編程組件模塊,是可命名的可自描述的代碼和數(shù)據(jù)集合。 概述 java9是一個(gè)主要版本的發(fā)布 這里介紹的是Oracle對(duì)JDK9的特性和增強(qiáng)的實(shí)現(xiàn) JEP是JDK的增強(qiáng)提案,包括增強(qiáng)建議和路線(xiàn)圖流程 JSR(Java規(guī)范請(qǐng)...
摘要:在語(yǔ)言上并沒(méi)有添加太多的新特性,但在使用性能上做了很改進(jìn)。二多版本包支持即在不同版本下,執(zhí)行相應(yīng)版本的代碼。在發(fā)布新版本的后,用戶(hù)可能不會(huì)升級(jí)到新環(huán)境,但是項(xiàng)目可能會(huì)開(kāi)始逐步升級(jí)到新版本,來(lái)提前適應(yīng)即將到來(lái)的環(huán)境。 Java9在語(yǔ)言上并沒(méi)有添加太多的新特性,但在使用、性能上做了很改進(jìn)。 一、模塊間引用 Java9添加了模塊化的概念,使得之前的控制訪(fǎng)問(wèn)權(quán)限有了改變。 之前: publ...
摘要:序本文介紹下下面的版本安裝使用。下載官網(wǎng)地址安裝路徑下載襲來(lái)是個(gè)文件,雙擊安裝,默認(rèn)裝到了這里,的地址是看下版本歡迎使用版本要大致了解該版本請(qǐng)鍵入有了就可以快速做一些驗(yàn)證,比如查看導(dǎo)入的類(lèi)庫(kù)方法定義及調(diào)用已創(chuàng)建方法已修改方法查看歷史 序 本文介紹下mac下面的java9版本安裝使用。 下載 官網(wǎng)地址http://www.oracle.com/technet... 安裝路徑 下載襲來(lái)是個(gè)...
閱讀 3672·2023-04-26 02:07
閱讀 3179·2021-09-22 15:55
閱讀 2548·2021-07-26 23:38
閱讀 3129·2019-08-29 15:16
閱讀 2020·2019-08-29 11:16
閱讀 1762·2019-08-29 11:00
閱讀 3602·2019-08-26 18:36
閱讀 3172·2019-08-26 13:32