成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

JDK9: 集成 Jshell 和 Maven 項(xiàng)目.

warnerwu / 1958人閱讀

摘要:等同于真正無(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)的CLASSPATH.

?  / 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

相關(guān)文章

  • Java9的新特性

    摘要:新特性概述系列一安裝及使用系列二運(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的新特性...

    ddongjian0000 評(píng)論0 收藏0
  • Java9特性預(yù)覽——Jshell

    摘要:什么是項(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ě)...

    hikui 評(píng)論0 收藏0
  • JDK 9 變更一覽

    摘要:概述是一個(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)...

    sherlock221 評(píng)論0 收藏0
  • Java 9 新特性

    摘要:在語(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...

    SegmentFault 評(píng)論0 收藏0
  • java9系列(一)安裝及jshell使用

    摘要:序本文介紹下下面的版本安裝使用。下載官網(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è)...

    gaosboy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<