原文地址 译者:bobwenx  (bobwenx@gmail.com)

8.OpenJDK 项目介绍


  • Penrose
  • Nashorn
  • JMH
  • Kulla
  • Valhalla

对于其他项目,请参见OpenJDK http://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的后续项目)。

项目信息

项目地址:

  • http://openjdk.java.net/projects/nashorn/

OpenJDK 8 代码库地址:

  • http://hg.openjdk.java.net/jdk8/jdk8/nashorn

OpenJDK 9 代码库地址:

  • http://hg.openjdk.java.net/jdk9/jdk9/nashorn

AvatarJS

在Nashorn上实现的 NodeJS JVM 运行时.

项目地址:

  • https://avatar-js.java.net/
  • https://avatar.java.net/

代码库地址:

  • https://java.net/projects/avatar-js/sources
技术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 文章
  • Java 8 Nashorn Tutorial by Benjamin Winterberg
IDE 支持
  • 参见第七章节: Source Code > Loading OpenJDK in the IDE

8.3 JMH


JMH 是针对Java及JVM语言的微基准测试(Micro Benchmarking)工具。

微基准测试(microbenchmark) 尝试测量代码中的”微”片段的性能。这些测试通常以纳秒级时间范围为单位来测量代码执行性能。测试代码通常划分为较小的任务来执行。

微基准测试(microbenchmark) 并不等同于代码分析(code profiling)! 当执行代码分析时,应用通常在测试/产品环境中以完整功能进行分析。 微基准测试 只测量完整应用中的部分组件。在产品环境中,组件的测试结果并不能代表整个应用的执行结果。

项目地址:

  • http://openjdk.java.net/projects/code-tools/jmh/
Blog 文章
  • Using JMH for Java Microbenchmarking by Michael Nitschinger
  • Hello JMH by Daniel Mitterdorfer

8.4 Kulla


Kulla 提供Java语言的命令行即时执行支持(Read Evaluate Print Loop, REPL)。

项目官网
  • http://openjdk.java.net/projects/kulla/
项目反馈
  • hackday feedback
项目下载
  • JDK 9: Binaries
  • Kulla.jar: Adopt OpenJDK Cloudbees Build farm
MacOS 用户

你可以使用下述步骤设置你的Mac所使用的JDK版本,或者参见http://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_HOMEfunction go9 {export JAVA_HOME=$JAVA9_HOMEexport JDK_HOME=$JAVA_HOMEecho "Switched to $JAVA_HOME"export PATH="$JAVA_HOME/bin:$PATH"
}function go8 {export JAVA_HOME=$JAVA8_HOMEexport JDK_HOME=$JAVA_HOMEecho "Switched to $JAVA_HOME"export PATH="$JAVA_HOME/bin:$PATH"
}function go7 {export JAVA_HOME=$JAVA7_HOMEexport JDK_HOME=$JAVA_HOMEecho "Switched to $JAVA_HOME"export PATH="$JAVA_HOME/bin:$PATH"
}function go6 {export JAVA_HOME=$JAVA6_HOMEexport JDK_HOME=$JAVA_HOMEecho "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相关的文章
  • http://www.infoq.com/news/2014/09/repl-for-java (Java REPL, IntelliJ IDEA Java REPL plugin, Beanshell, etc…)
  • http://redcode7.rssing.com/browser.php?indx=11248373&last=1&item=7
  • http://www.javaworld.com/article/2601433/java-language/programmers-could-get-repl-in-official-java.html
  • https://teamtreehouse.com/forum/installing-java-repl
  • Java REPL in 300 lines of code
编译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存放地址.

详细的编译步骤,请参见 http://hg.openjdk.java.net/kulla/dev/langtools/file/4933dc482be7/repl/README。

你也可以下载 Maven POM.xml 并存放在$HOME/sources/kulla-dev/langtools/repl/下,之后执行编译。

其他关于编译Kulla的技术链接:

  • JClarity’s post
  • Arun Gupta’s post
  • a nice and short blog post from Greg Bakos
小技巧

快速清空终端输出:

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

8.5 Valhalla


Valhalla 旨在为JVM提供值类型(Value Type),运行时泛型和增强http://openjdk.java.net/jeps/193支持.

Adopt Open JDK官方文档(八)OpenJDK 项目介绍相关推荐

  1. Adopt Open JDK官方文档(二)如何使用导航和取得进步?

    2.如何使用导航和取得进步 在黑客日和讲习班开始之前我需要做些什么呢 来之前你应该准备好你的笔记本电脑并搭建好当天需要的环境 检查硬件要求/操作系统/软件要求 下载支撑软件 搭建或者下载虚拟机 搭建或 ...

  2. Adopt Open JDK官方文档(四)基于虚拟机的编译环境

    4.基于虚拟机的编译环境 准备工作 编译你自己的虚拟机 编译你自己的轻量级虚拟机 在Host 与 Guest VM 之间共享文件 适用于 OpenJDK 8 的Vagrant Puppet 环境 4. ...

  3. 翻译Houdini官方文档:PDG/TOPs介绍

    官方文档:Introduction to TOPs 总览 使用TOPs工作 TOP节点UI Processors(处理器) Mappers partitions(分割) Schedulers(调度器) ...

  4. 《Apache Flink官方文档》 Apache Flink介绍

    下面是关于Apache Flink(以下简称Filnk)框架和流式计算的概述.为了更专业.更技术化的介绍,在Flink文档中推荐了一些"概念性"的文章. 1.无穷数据集的持续计算 ...

  5. Pygame 官方文档 - Tutorials - Surfarray模块介绍(Surfarray Introduction)

    Surfarray模块介绍(Surfarray Introduction) Author: Pete Shinners Contact: pete@shinners.org 介绍(Introducti ...

  6. Orleans 2.0 官方文档 —— 1.1 概览 - 介绍

    介绍 Orleans是一个框架,它提供了一种简单的方法来构建分布式大规模计算应用程序,而无需学习和应用复杂的并发或其他扩展模式. 背景 云应用程序和服务本质上是并行和分布式的.它们也具有交互性和动态性 ...

  7. Axon Framework官方文档(五)

    5.Command Model 在基于CQRS的应用程序中,一个领域模型(由Eric Evans和Martin Fowler提出的概念)可以是一种非常强大的机制,它可以利用状态更改的验证和执行所涉及的 ...

  8. 翻译Houdini官方文档:PDG教程之HDA处理器

    官方文档:PDG Tutorial 3 HDA Processor Part 1 关于这个教程 你将会学到什么 步骤 0 - 拷贝所需的HDA文件 步骤 1 - 观察HDA 步骤 2 - 设置PDG输 ...

  9. ros2_control官方文档

    ros2_control官方文档 鱼香ROS介绍: 鱼香ROS是由机器人爱好者共同组成的社区,欢迎一起参与机器人技术交流. 进群加V:fishros2048 文章信息: 标题:ros2_control ...

  10. Unity3D 官方文档 UGUI总览 可互动组件的介绍

    版本:unity 5.6  语言:C# 总起: 可互动组件包括按钮.复选框.滑块.滚动条等,本身它们是不可见的,但它们内部有可视化组件. 做UI的时候,如果不需要什么特效本身使用onClick.Add ...

最新文章

  1. C#学习-EF在三层中使用
  2. 学计算机excel就很好吗,零基础学习excel小技巧
  3. 删除Win7隐藏的系统分区
  4. 1355. 母亲的牛奶【一般 / DFS爆搜】
  5. centos查看当前目录文件夹的大小与tar解压到指定目录
  6. 从零点五开始用Unity做半个2D战棋小游戏(六)
  7. bulk这个词的用法_15、形容词与副词(二)比较的用法
  8. gentry同态加密算法_基于Gentry全同态加密算法公钥个数优化的研究
  9. docker 安装hadoop
  10. 我的站(艾网---城市生活新门户)重新上线了
  11. 《Web测试囧事》——1.3 测试Web Service能否正常提供JSON数据
  12. windows下编译librtmp库
  13. hp android 计算器,惠普图形计算器(HP Prime Graphing Calculator)
  14. 再次携号转网_全国携号转网真来了!这些坑一定要小心!
  15. 【DIY】制作一个刷卡进门装置
  16. Cadence Allegro 板框倒角设置方法
  17. 在线教育平台建立付费会员体系
  18. 用新版的Yahoo宝贝鱼(Babel Fish)做自己的翻译器(防乱码)
  19. python隐秘的角落——笛卡尔之心
  20. css3实现各种角度的三角形

热门文章

  1. Sharepoint 2010 对话框框架
  2. Android保存多张图片到本地
  3. ionic3 教程(一)安装和配置
  4. vi下的查找替换命令
  5. poj 2485 Highways 超级大水题 kruscal
  6. [转载]如何捕获控制台消息
  7. web项目开发的基本流程
  8. 使用Jorm简单的增删查改数据库
  9. Caused by: org.hibernate.HibernateException: unknown Oracle major version [0]
  10. Linux中svn提交文件后自动同步更新到网站目录