GraalVM 安装及编译项目为可执行 exe 文件
GraalVM
什么是GraalVM
- GraalVM 入门 – 高性能的多语言运行时。 它旨在加速用Java和其他JVM语言编写的应用程序的执行,同时还提供JavaScript,Ruby,Python和许多其他流行语言的运行时。 GraalVM的多语言功能使您可以在一个应用程序中混合多种编程语言,同时消除任何外语调用成本。(机译)
- 不使用以往的JIT,采用的是AOT编译。
- GraalVM 能够通过一种新的及时编译技术在 OpenJDK 的上下文中运行,对于已有的java程序,GraalVM 使它们运行得更快,通过脚本语言提供扩展性功能以及创建提前编译的本地镜像。
安装方式
-
在官网中找到对应的需求(我选择的是Community)
下载地址
根据需求选择 Java11 或 Java8
点击下载压缩包 -
下载完后解压到对应的路径
这里我选择与原JDK放在一起,目的是到时候切换会原来的也方便。就是懒,解压后也快1G了,注意C盘内存哈 -
配置环境变量
我尝试了直接配置环境变量,修改JAVA_HOME的变量值,发现转不过来,也不能弄新的GRAALVM_HOME变量值,所以还是乖乖的用官网的方式配置了-
利用 CMD 配置官网提供的方式
官网配置方式
分别执行(根据我的文件位置为例)setx /M PATH "C:\Program Files\Java\graalvm-ce-java11-20.3.0\bin;%PATH%"
setx /M JAVA_HOME "C:\Program Files\Java\graalvm-ce-java11-20.3.0"
注意:以管理员方式打开 cmd
然后重启一下 cmd 输入java -version
就能看到原本的已经改变
-
这样子也就说明了环境已经配置好了。
测试案例
想来想去还是使用大家最了解的HelloWord为例吧
-
首先准备一个一份代码
public class GraalVMTest { public static void main(String[] args) { System.out.println("Hello GraalVM!"); System.out.println(args[0]); } }
-
运行
-
(前提)编译成本地镜像前,需要给这 GraalVM 安装 native-image 组件,还需要安装一个 visual studio 。
没安装前进行转换文件:
执行 gu 命令安装组件(因为从GitHub中下载,所以会比较慢,有可能还会失败,多试几次就行)gu install native-image
注意:还是需要以管理员的身份打开cmd安装,我已经安装过了才是这样显示的。另外还需安装 visual studio :
需要它的原因是 GraalVM 把 class 文件编译成 exe 文件时需要 MSVC 环境的。 -
开始编译
(还是会遇到一个小问题,如下)
查了下资料,得知是环境变量没有cl
命令,而cl
命令是 Visual Studio 的。
在安装的时候并没有自动添加到我们系统的环境变量里,这时我们需要去执行一个脚本, 这个脚本在 Visual Studio 的安装目录里,如下图:
需在 CMD 命令行内执行,执行后会将相关环境变量添加到当前的 CMD 环境。因为是临时变量,所以只对当前的 CMD 有效。
根据安装路径取:call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
执行:
再次编译:
可算是成功了,可以看到 class 已被编译成了 exe 文件了
运行看试试
执行成功了!不过注意到的是,文件明显变大了许多,这里主要是它集成了 Java 所需要的运行环境。
总结
目前,这里就主要是简单的演示如何安装 GraalVM 以及 了解下 native-image 如何将 class 文件编译成可执行的 image 文件,当然不仅仅可以编译 class 文件,还可以编译 jar 包。
可以通过 native-image --help
查看到更多详细的操作,后续有时间再对 GraalVM 继续深入研究哈,谢谢大家。
一起靓,才是真靓仔
本文地址:https://blog.csdn.net/PINKMIAO/article/details/111983678