GraalVM : www.graalvm.org/
slogan : 构建更快、更小、更精简的应用程序
跟上技术革新的步伐,让自己无可替代!!!Stay foolish stay hungry!!!
GraalVM特性
低资源占用
本机可执行文件只使用JVM所需的一小部分内存和CPU资源,这提高了利用率并降低了成本。
快速启动
提前编译的本机可执行文件立即启动,不需要预热即可以最佳性能运行。
框架支持
Spring Boot、Micronaut、Helidon和Quarkus等流行框架为GraalVM提供了一流的支持。
提高安全性
本机可执行文件只包含应用程序所需的类、方法和字段,从而减少了攻击面。
打包压缩
本机可执行文件很小,并且提供了一系列链接选项,这使得它们很容易部署到最小的容器映像中。
互联网头部云平台支持
来自头部云平台(如AWS、Microsoft Azure、GCP和Oracle cloud Infrastructure)的sdk集成并支持GraalVM。
云原生支持
编写高效、更安全、高度可伸缩的云原生Java应用程序。
构建
- 将Java模块构建为本地可执行文件
- 构建一个静态的或几乎是静态的本机可执行文件
- 使用远程JMX构建并运行本地可执行文件
- 使用JFR构建并运行本机可执行文件
- 容器化一个本地可执行文件,并在Docker容器中运行它
- 从JAR文件构建一个本地可执行文件
- 构建一个本地共享库
- 使用Gradle从Java应用程序构建一个本地可执行文件
- 使用Maven从Java应用程序构建本地可执行文件
配置
容器化
- 容器化一个本地可执行文件并在Docker容器中运行
- 从Helidon SP应用程序构建一个本地可执行文件
- 从Helidon MP应用程序构建一个本地可执行文件
- 从Spring Boot 3应用程序构建一个本地可执行文件
- 从Quarkus应用程序构建一个本地可执行文件
调试
微服务
- 从Spring Boot 3应用程序构建一个本地可执行文件
- 从Helidon SP应用程序构建一个本地可执行文件
- 从Helidon MP应用程序构建一个本地可执行文件
- 从Micronaut应用程序构建本地可执行文件
- 从Quarkus应用程序构建一个本地可执行文件
监控
优化
GraalVM 使用
开发
IDE和Java工具支持
使用您最喜欢的Java IDE和开发工具,然后使用GraalVM Native Image提前将您的应用程序编译为可执行文件。这只是你开发过程中一个无缝的额外步骤。
构建
Maven和Gradle插件
原生构建工具提供了Maven和Gradle插件,可以让你在构建过程中轻松地提前编译应用程序。
测试
JUnit 5支持
使用提前编译的JUnit测试支持测试您的本地应用程序。
调试
使用GDB进行原生调试
设置断点,逐行遍历Java源代码,使用GDB和受支持的ide检查本地可执行文件中的变量。
打包部署
小而高效的容器
原生可执行文件非常适合与轻量级的容器映像一起使用,可以最小化攻击面以提高安全性。静态链接的本地可执行文件甚至可以在临时容器映像中运行!
监控
支持JFR、JMX等
使用与部署在JVM上的应用程序相同的工具监视本机可执行文件。原生可执行文件可以选择支持JFR、JMX、堆转储、jvmstat等。
谁在使用?
- 迪斯尼
- Oracle
- 阿里巴巴
- 英伟达
- 推特
- ...
GraalVM技术
Graal JIT编译器
使用GraalVM JDK和优化的Graal即时(JIT)编译器来提高Java应用程序的性能。
其他语言
使用其他语言编写的代码扩展Java应用程序或使用GraalVM加速其他语言。
下载
也可至github下载: github.com/graalvm/gra…
支持版本
- Java17
- Java20
支持平台
- Linux(X64)
- Linux(AArch64)
- MacOs(X64)
- MacOs(AArch64)
- Windows(X64)
Oracle 配套JDK下载
最新JDK下载: www.oracle.com/cn/java/tec…
即刻开始
GraalVM提前将您的Java应用程序编译为独立的二进制文件,这些二进制文件可以立即启动,无需预热即可提供最高性能,并且使用更少的资源。
在这里,您将找到有关安装GraalVM和使用它运行基本应用程序的信息。
如果您不熟悉GraalVM,我们建议从GraalVM的介绍开始,在那里您将找到有关GraalVM的优点、可用的发行版、支持的平台、功能支持和许可的信息。
如果你已经安装了GraalVM并且有使用它的经验,你可以跳过这一页,继续深入阅读参考手册。
选择您的操作系统,然后根据您的特定平台执行安装步骤:
开始运行应用程序
GraalVM的核心发行版包括Java开发工具包(JDK)、即时编译器(Graal编译器)、本地映像等。你可以像使用IDE中的任何其他JDK一样使用GraalVM JDK,所以安装了GraalVM,你就可以不加修改地运行任何Java应用程序。
java启动器运行JVM, Graal作为最后一层编译器。检查安装的Java版本:
$JAVA_HOME/bin/java -version
使用GraalVM本地镜像,您可以将Java字节码编译为特定于平台的、自包含的本机可执行文件,以实现更快的启动和更小的应用程序占用空间。
将这个简单的HelloWorld.java应用编译为字节码,然后构建一个本地可执行文件:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
javac HelloWorld.java
native-image HelloWorld
最后一个命令在当前工作目录中生成一个名为helloworld的可执行文件。调用它将运行HelloWorld类的本机编译代码,如下所示:
./helloworld
Hello, World!
注意:对于编译,本地镜像依赖于本地工具链。确保您的系统满足先决条件。
接下来读什么
新用户
有关该技术的更多信息,请继续阅读原生镜像基础。对于熟悉GraalVM原生映像但可能没有使用经验的用户,请继续阅读用户指南。
有关Graal编译器的更多信息,请参阅编译器文档。更大的Java示例可以在GitHub上的GraalVM演示库中找到。
高级用户
对GraalVM更有经验或想要使用GraalVM做更多工作的开发人员可以直接参考手册以获得深入的文档。
您可以在安全指南中找到有关GraalVM安全模型的信息,并在GraalVM SDK Javadoc和Truffle Javadoc中找到丰富的API文档。
我们还建议查看我们的GraalVM团队博客。
GraalVM 安装使用
Windows GraalVM 安装
我们基于jenv来管理多个jdk.
` C:\Users\Administrator>jenv list All avaible versions of java
name path
jdk8 C:\Program Files\Java\jdk1.8.0_333 jdk11 C:\Program Files\Java\jdk-11.0.15.1
All locally specified versions
C:\Users\Administrator>jenv add jdk17 "C:\Program Files\Java\graalvm-jdk-17.0.7+8.1" Successfully added the new JEnv: jdk17
C:\Users\Administrator>jenv add jdk20 "C:\Program Files\Java\graalvm-jdk-20.0.1+9.1" Successfully added the new JEnv: jdk20
C:\Users\Administrator>jenv list All avaible versions of java
name path
jdk8 C:\Program Files\Java\jdk1.8.0_333 jdk11 C:\Program Files\Java\jdk-11.0.15.1 jdk17 C:\Program Files\Java\graalvm-jdk-17.0.7+8.1 jdk20 C:\Program Files\Java\graalvm-jdk-20.0.1+9.1
All locally specified versions
C:\Users\Administrator>jenv use jdk17 JEnv changed for the current shell session. Careful this overwrites jenv local
C:\Users\Administrator>java -version java version "17.0.7" 2023-04-18 LTS Java(TM) SE Runtime Environment Oracle GraalVM 17.0.7+8.1 (build 17.0.7+8-LTS-jvmci-23.0-b12) Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 17.0.7+8.1 (build 17.0.7+8-LTS-jvmci-23.0-b12, mixed mode, sharing)
C:\Users\Administrator> ` 如图所示:
可以看到我们的GraalVM jdk环境已经安装成功。