写点什么

GraalVM 19.3 发布,支持 Java 11

  • 2019-12-05
  • 本文字数:1192 字

    阅读完需:约 4 分钟

GraalVM 19.3发布,支持Java 11

多语言虚拟机GraalVM为使用多种语言(如 Java、C 语言、Python 和 JavaScript)开发的应用程序提供了共享运行时。最新版本 19.3 已发布,支持 JDK 11。之前的版本基于 JDK 8。


GraalVM 限制支持大量介于 Java 9 和 Java 11 之间的语言特性和平台改进,如紧凑的字符串、变量类型推断、Java 平台模块系统(JPMS)和 HTTP 客户端。


例如,下面的代码片段演示了使用最新的 Java 11 HTTP 客户端向比特币网站发送一个简单的请求:


public class BPI {  public static void main(String... args) {    var request = HttpRequest        .newBuilder()        .uri(URI.create("https://api.coindesk.com/v1/bpi/currentprice.json"))        .GET()        .build();
var response = HttpClient .newHttpClient() .send(request, HttpResponse.BodyHandlers.ofInputStream());
var json = Json .createReader(response.body()) .readObject() .getJsonObject("bpi"); System.out.printf("Current Bitcoin Price: $%s %s", price, indicator); }}
复制代码


在将 GraalVM 的安装路径加入到 JAVA_HOME 和 PATH 中之后,就可以使用 javac 命令或 Maven 构建工具来编译基于 Java 11 的类(如上述的 Java 类)。


GraalVM 的本地镜像生成器也支持 Java 11,作为早期采用者技术特性。本地镜像是一种提前编译的 Java 字节码包,可独立执行。本地镜像具有启动速度快、占用空间小的特点。但要注意的是,本地镜像不支持 Java 平台模块系统,在运行时不具备模块自检功能。native-image 是一个可选包,可通过 GraalVM更新程序gu来安装。gu 是一个包管理器,可用于下载和安装不包含在 GraalVM 发行版中的包。


下面的代码片段演示了如何安装 native-image、基于上述的类构建一个本地镜像,并执行生成的文件:


gu install native-image
native-image -cp example.jar \ --enable-url-protocols=https \ my.example.BPI
复制代码



使用 Maven 作为构建工具的用户可以使用Maven插件来生成镜像。


另外需要注意的是,因为 G1 是 Java 11 的默认垃圾回收器,所以在将对性能比较敏感的应用程序从 JDK 8 迁移到 JDK 11 时,需要特别小心。


除了支持 JDK 11,这个 GraalVM 长期支持(LTS)版本也在其他多个方面做出了改进,如本地镜像生成、GraalVM 编译器、代码覆盖、GraalVM VisualVM,升级 NodeJS、Python 和 R 语言运行时。GraalVM 19.3 的版本公告提供了全部的改进和增强信息。


相关资源


原文链接


GraalVM 19.3 Brings JDK 11 Support


2019-12-05 08:001835

评论

发布
暂无评论
发现更多内容

基于HTML5/CSS/JS响应式圣诞老人过悬崖小游戏

海拥(haiyong.site)

28天写作 12月日更

基于区块链的去中心化身份技术有哪些应用前景?

CECBC

不要被数据蒙蔽你的眼睛

好奇分析

数据分析 统计学 辛普森悖论

通过元宇宙远程上班有的搞吗?

王字 Wannz

虚拟现实 元宇宙 凡泰极客

Python 的切片为什么不会索引越界?

Python猫

Python

CSS之变量

Augus

CSS 12月日更

优酷播放黑科技 | 基于WebRTC实现的直播“云多视角“技术解析

阿里巴巴终端技术

WebRTC 移动开发 直播技术 客户端

如何推动区块链与物联网深度融合,赋能数字化转型?

CECBC

十二张图带你了解 Redis 的数据结构和对象系统

程序员历小冰

redis 数据结构 28天写作 12月日更

在Vue-cli中使用mock.js

CRMEB

如何正确的重写hashcode()

李子捌

Java 28天写作 12月日更

Flink Hudi 0.10.0 发布,多项重要更新,稳定性大幅提升

Apache Flink

大数据 flink 编程 数据湖 Hudi

架构训练营 week3 作业

红莲疾风

「架构实战营」

EMQ & 轻流:全托管物联网消息服务助力海量设备低代码智联

EMQ映云科技

物联网 mqtt

从零到一,我也能写小程序

王字 Wannz

小程序 小程序市场 finclip 小程序框架

怎样的活动才算是成功?(20/28)

赵新龙

28天写作

如何看待制造企业的数字化转型,有哪些成功案例可以分享?

优秀

低代码 数字化转型 制造业

GrowingIO Reactor速成指南

GrowingIO技术专栏

响应式编程 reactor

Flink CDC 系列 - 实时抽取 Oracle 数据,排雷和调优实践

Apache Flink

大数据 flink 编程 实时计算 CDC

开发者供不应求,传统企业如何拥抱 DevOps ?

SoFlu软件机器人

☕【Java深层系列】「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南

洛神灬殇

Java 工具 日期处理 12月日更

架构实战营第 4 期 -- 模块三作业

烈火干柴烛灭田边残月

架构实战营

SIGCOMM 首篇 Multi-path QUIC 论文:阿里自研多路径传输技术XLINK

阿里巴巴终端技术

网络协议 传输协议 移动端 客户端 QUIC

电竞进入5G时代!腾讯云联合腾讯游戏CROS首秀5G电竞专网

科技热闻

Gitee 如何自动部署 Pages?还是用 GitHub Actions!

冴羽

GitHub 前端 GitHub Pages gitee vuepress

NFT改变潮流,也在解放人类创造力的约束

CECBC

如何提高用户留存?

石云升

AARRR 产品思维 28天写作 产品增长 12月日更

🏆【CI/CD技术专题】「Docker实战系列」(1)本地进行生成镜像以及标签Tag推送到DockerHub

洛神灬殇

Docker 容器镜像 12月日更 Dockerhub

GraalVM 19.3发布,支持Java 11_编程语言_Uday Tatiraju_InfoQ精选文章