閱讀956 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Adopt Open JDK官方文檔(八)OpenJDK 項目介紹

8.OpenJDK 項目介紹


對於其他項目,請參見OpenJDK https://mail.openjdk.java.net/mailman/listinfo 以及對應項目的Mailing Lists.

8.1 Penrose


Penrose 項目提供jigsaw 與 OSGi 環境的互操作性。

因為原Jigsaw JDK8 EA Build 已經停止開發,Penrose 項目的源碼當前處於過期狀態。Penrose項目仍處於探索階段。

如果你對該項目由興趣,可以查看 penrose/jigsaw 與 penrose/penrose(Demos) 兩個目錄.

8.2 Nashorn


Nashorn (發音: ˈnaːshɔɐ̯n) 項目提供基於JVM的Javascript運行時(Rhino的後續項目)。

項目信息

項目地址:

OpenJDK 8 代碼庫地址:

OpenJDK 9 代碼庫地址:

AvatarJS

在Nashorn上實現的 NodeJS JVM 運行時.

項目地址:

代碼庫地址:

技術PPT

https://github.com/neomatrix369/adoptopenjdk-getting-started-kit/blob/master/en/openjdk-projects/JavaScript_J2D.pdf包含一份來自 BGJUG 成員在Sofia Java技術會議上的PPT,該PPT介紹了閉包(Lambdas)等技術在Nashorn, AvatarJS, AvatarEE等項目上的實現。

Blog 文章
IDE 支持

8.3 JMH


JMH 是針對Java及JVM語言的微基準測試(Micro Benchmarking)工具。

微基準測試(microbenchmark) 嚐試測量代碼中的”微”片段的性能。這些測試通常以納秒級時間範圍為單位來測量代碼執行性能。測試代碼通常劃分為較小的任務來執行。

微基準測試(microbenchmark) 並不等同於代碼分析(code profiling)! 當執行代碼分析時,應用通常在測試/產品環境中以完整功能進行分析。 微基準測試 隻測量完整應用中的部分組件。在產品環境中,組件的測試結果並不能代表整個應用的執行結果。

項目地址:

Blog 文章

8.4 Kulla


Kulla 提供Java語言的命令行即時執行支持(Read Evaluate Print Loop, REPL)。

項目官網
項目反饋
項目下載
MacOS 用戶

你可以使用下述步驟設置你的Mac所使用的JDK版本,或者參見https://javapapo.blogspot.com/2013/02/multiple-java-jdks-on-your-macosx.html.

我當前使用的是什麼版本的JDK?

// Tells you which JDKs you have
$ /usr/libexec/java_home -verbose

當我登錄/啟動Terminal app時,如何設置默認 JAVA_HOME?

// You can set that export command in your ~/.profile
// and/or ~/.bashrc to permanently set JAVA_HOME
// for all shells/terminals/applications.
export JAVA_HOME="`/usr/libexec/java_home -v '1.8*'`"

// Set JAVA_HOME to be Java 9 for the terminal
// window you are in
export JAVA_HOME="`/usr/libexec/java_home -v '1.9*'`"
Linux/MacOS 用戶

當安裝了多個JDK環境時,如何快速切換JDK版本?

將下述腳本添加到你的 ~/.bashrc 或 ~/.bash_profile 中:

export JAVA9_HOME=/path/to/jdk1.9.0
export JAVA8_HOME=/path/to/jdk1.8.0
export JAVA7_HOME=/path/to/jdk1.7.0
export JAVA6_HOME=/path/to/jdk1.6.0
export JAVA_HOME=$JAVA7_HOME
export JDK_HOME=$JAVA7_HOME

function go9 {
    export JAVA_HOME=$JAVA9_HOME
    export JDK_HOME=$JAVA_HOME
    echo "Switched to $JAVA_HOME"
    export PATH="$JAVA_HOME/bin:$PATH"
}

function go8 {
    export JAVA_HOME=$JAVA8_HOME
    export JDK_HOME=$JAVA_HOME
    echo "Switched to $JAVA_HOME"
    export PATH="$JAVA_HOME/bin:$PATH"
}

function go7 {
    export JAVA_HOME=$JAVA7_HOME
    export JDK_HOME=$JAVA_HOME
    echo "Switched to $JAVA_HOME"
    export PATH="$JAVA_HOME/bin:$PATH"
}

function go6 {
    export JAVA_HOME=$JAVA6_HOME
    export JDK_HOME=$JAVA_HOME
    echo "Switched to $JAVA_HOME"
    export PATH="$JAVA_HOME/bin:$PATH"
}
快速入門

設置好Java環境後,運行 Kulla.jar:

set JAVA_HOME to point to /path/JDK9/
$ java -jar ~/sources/kulla/kulla.jar
| Welcome to the Java REPL -- Version 0.411
| Type /help for help

->|

獲取kulla幫助選項(/help):

-> /help
Type a Java language expression, statement, or declaration.
Or type one of the following commands:

{
.  
.
.  
  [Options]
.  
.
.  
}

Supported shortcuts include:
<tab> -- show possible completions for the current text
Shift-<tab> -- for current method or constructor invocation, show a synopsis of the method/constructor

命令行練習

https://java.net/projects/adoptopenjdk/downloads/download/REPL_Tutorial.pdf

與Java REPL相關的文章
編譯OpenJDK 9中的Kulla
hg clone https://hg.openjdk.java.net/kulla/dev kulla-dev
cd kulla-dev
sh get_sources.sh
bash configure --with-boot-jdk=/path/to/jdk1.8.0
make clean images
make install  <=== optional

請確保上述編譯過程中的JAVA_HOME與PATH環境變量設置正確.

請從Maven倉庫下載JLine2 Jar, 並將環境變量JLINE2LIB設置為所下載的jar存放地址.

詳細的編譯步驟,請參見 https://hg.openjdk.java.net/kulla/dev/langtools/file/4933dc482be7/repl/README

你也可以下載 Maven POM.xml 並存放在$HOME/sources/kulla-dev/langtools/repl/下,之後執行編譯。

其他關於編譯Kulla的技術鏈接:

小技巧

快速清空終端輸出:

  • MacOS: CMD-K
  • Linux: Ctrl-K 或 Ctrl-L

8.5 Valhalla


Valhalla 旨在為JVM提供值類型(Value Type),運行時泛型和增強https://openjdk.java.net/jeps/193支持.

項目官網
Blog 文章

最後更新:2017-05-22 15:33:52

  上一篇:go  阿裏內貿團隊敏捷實踐-敏捷回顧
  下一篇:go  硬件的習性