1. 程式人生 > >Adopt Open JDK官方文件(八)OpenJDK 專案介紹

Adopt Open JDK官方文件(八)OpenJDK 專案介紹

原文地址 譯者:bobwenx  ([email protected]

8.OpenJDK 專案介紹

8.1 Penrose

Penrose 專案提供jigsaw 與 OSGi 環境的互操作性。

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

8.2 Nashorn

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

專案資訊

專案地址:

OpenJDK 8 程式碼庫地址:

OpenJDK 9 程式碼庫地址:

AvatarJS

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

專案地址:

程式碼庫地址:

技術PPT
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 使用者

我當前使用的是什麼版本的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

命令列練習

與Java REPL相關的文章
編譯OpenJDK 9中的Kulla
hg clone http://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存放地址.

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

其他關於編譯Kulla的技術連結:

小技巧

快速清空終端輸出:

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

8.5 Valhalla

專案官網
Blog 文章


方 騰飛

花名清英,併發網(ifeve.com)創始人,暢銷書《Java併發程式設計的藝術》作者,螞蟻金服技術專家。目前工作於支付寶微貸事業部,關注網際網路金融,併發程式設計和敏捷實踐。微信公眾號aliqinying。