jdk9 新特性 sjavac

智能 Java  编译工具智能 Java  编译工具

 什么是sjavac,它是谁,我该如何使用它?

转载:http://www.it1352.com/973148.html

关于一个名为的工具的一些嗡嗡声 OpenJDK邮件列表中的 sjavac 。此外,还有两个相关的JEP:

 JEP 139:增强javac以提高构建速度

JEP 199:智能Java编译,第二阶段

 

我的问题是:

  • sjavac 工具究竟是什么?
  • 谁是谁它打算用于?
  • 如何使用它?
  • 免责声明:自我回答的问题。只是想将此工具的知识带到StackOverflow社区,并创建对未来sjavac FAQ的引用。
     

解决方案

 

什么是sjavac工具?

sjavac 工具是围绕 javac 的(据称是智能)包装器,在Oracle开发并旨在提供以下功能:

  • 增量编译 - 仅重新编译必要的内容
  • 并行编译 - 在编译期间使用多个核心
  • 将编译器保留在HotSpot VM - 重用JIT的javac实例进行连续调用

重新编译一组源文件时,javac会查看.java的时间戳和.class文件来确定要保留的内容和要重新编译的内容。这非常粗糙,对于大型代码库来说可能是毁灭性的。除了时间戳,sjavac还会检查依赖项的公共API,以判断哪些文件需要重新编译。

Sjavac还尝试将编译拆分为多个javac调用。换句话说,它为构建过程带来了高水平的并行性。

最后,sjavac工具分为客户端部分和服务器部分,允许您让sjavac在后台运行,JIT'并准备连续使用。

 

智能 java 编译工具 ( sjavac ) 的第一个阶段始于 JEP139 这个项目, 用于 在多核处理器情况下提升 JDK 的编译速度 。如今,这个项目已经 进入第二阶段,即 JEP199 ,其目的是改进 Java 编译工具,并 取代目 前 JDK 编译工具 javac ,继而成为 Java 环境默认的通用的智能编译工 具。
JDK 9 更新了 javac 编译器 以便能够将 java 9 代码编译运行 在低版本 Java 中。

 

 

它的目的是什么?

我们鼓励那些正在开发大型项目并经常在开发过程中重新编译代码库的人试用 sjavac 。 (请注意,该工具目前正在开发中,但仍存在未解决的问题。)

 

 

 

如何使用它?


OpenJDK尚未附带该工具,因此您必须从 OpenJDK jdk9 / dev存储库。此外,还没有启动器,所以你用 java com.sun.tools.sjavac.Main 调用它。

您可以在这里尝试sjavac的jdk 8后端:http://sjavac.s3-website-eu-west-1.amazonaws.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值