GraalVM 安装及编译项目为可执行 exe 文件

GraalVM

官网:www.graalvm.org

什么是GraalVM

  • GraalVM 入门 – 高性能的多语言运行时。 它旨在加速用Java和其他JVM语言编写的应用程序的执行,同时还提供JavaScript,Ruby,Python和许多其他流行语言的运行时。 GraalVM的多语言功能使您可以在一个应用程序中混合多种编程语言,同时消除任何外语调用成本。(机译)
  • 不使用以往的JIT,采用的是AOT编译。
  • GraalVM 能够通过一种新的及时编译技术在 OpenJDK 的上下文中运行,对于已有的java程序,GraalVM 使它们运行得更快,通过脚本语言提供扩展性功能以及创建提前编译的本地镜像。

安装方式

  1. 在官网中找到对应的需求(我选择的是Community)
    下载地址
    选择社区版
    根据需求选择 Java11 或 Java8
    JDK版本
    点击下载压缩包

  2. 下载完后解压到对应的路径
    这里我选择与原JDK放在一起,目的是到时候切换会原来的也方便。就是懒,解压后也快1G了,注意C盘内存哈
    graal存放位置

  3. 配置环境变量
    我尝试了直接配置环境变量,修改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为例吧

  1. 首先准备一个一份代码

    public class GraalVMTest {
    	public static void main(String[] args) {
        	System.out.println("Hello GraalVM!");
        	System.out.println(args[0]);
        }
    }
    
  2. 运行
    在这里插入图片描述

  3. (前提)编译成本地镜像前,需要给这 GraalVM 安装 native-image 组件,还需要安装一个 visual studio 。
    没安装前进行转换文件:
    出错
    执行 gu 命令安装组件(因为从GitHub中下载,所以会比较慢,有可能还会失败,多试几次就行)
    gu install native-image
    注意:还是需要以管理员的身份打开cmd安装,我已经安装过了才是这样显示的。
    安装native-image

    另外还需安装 visual studio :
    visual studio
    需要它的原因是 GraalVM 把 class 文件编译成 exe 文件时需要 MSVC 环境的。

  4. 开始编译
    (还是会遇到一个小问题,如下)
    缺少cl.exe
    查了下资料,得知是环境变量没有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 继续深入研究哈,谢谢大家。


一起靓,才是真靓仔

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值