欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-10 21:57:20
GraalVM官网:www.graalvm.org什么是GraalVMGraalVM 入门 – 高性能的多语言运行时。 它旨在加速用Java和其他JVM语言编写的应用程序的执行,同时还提供JavaScript,Ruby,Python和许多其他流行语言的运行时。 GraalVM的多语言功能使您可以在一个应用程序中混合多种编程语言,同时消除任何外语调用成本。(机译)不使用以往的JIT,采用的是AOT编译。安装方式在官网中找到对应的需求(我选择的是Community)下载地址根据需求选择...

GraalVM

官网:www.graalvm.org

什么是GraalVM

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

安装方式

  1. 在官网中找到对应的需求(我选择的是Community)
    下载地址
    GraalVM 安装及编译项目为可执行 exe 文件
    根据需求选择 Java11 或 Java8
    GraalVM 安装及编译项目为可执行 exe 文件
    点击下载压缩包

  2. 下载完后解压到对应的路径
    这里我选择与原JDK放在一起,目的是到时候切换会原来的也方便。就是懒,解压后也快1G了,注意C盘内存哈
    GraalVM 安装及编译项目为可执行 exe 文件

  3. 配置环境变量
    我尝试了直接配置环境变量,修改JAVA_HOME的变量值,发现转不过来,也不能弄新的GRAALVM_HOME变量值,所以还是乖乖的用官网的方式配置了

    • 利用 CMD 配置官网提供的方式
      官网配置方式
      GraalVM 安装及编译项目为可执行 exe 文件
      分别执行(根据我的文件位置为例)

      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
      GraalVM 安装及编译项目为可执行 exe 文件
      然后重启一下 cmd 输入 java -version就能看到原本的已经改变

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

这样子也就说明了环境已经配置好了。

测试案例

想来想去还是使用大家最了解的HelloWord为例吧

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

    public class GraalVMTest {
    	public static void main(String[] args) {
        	System.out.println("Hello GraalVM!");
        	System.out.println(args[0]);
        }
    }
    
  2. 运行
    GraalVM 安装及编译项目为可执行 exe 文件

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

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

  4. 开始编译
    (还是会遇到一个小问题,如下)
    GraalVM 安装及编译项目为可执行 exe 文件
    查了下资料,得知是环境变量没有cl命令,而cl 命令是 Visual Studio 的。
    在安装的时候并没有自动添加到我们系统的环境变量里,这时我们需要去执行一个脚本, 这个脚本在 Visual Studio 的安装目录里,如下图:
    GraalVM 安装及编译项目为可执行 exe 文件
    需在 CMD 命令行内执行,执行后会将相关环境变量添加到当前的 CMD 环境。因为是临时变量,所以只对当前的 CMD 有效。
    根据安装路径取:
    call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"

    执行:
    GraalVM 安装及编译项目为可执行 exe 文件
    再次编译:
    GraalVM 安装及编译项目为可执行 exe 文件
    可算是成功了,可以看到 class 已被编译成了 exe 文件了
    GraalVM 安装及编译项目为可执行 exe 文件
    运行看试试
    GraalVM 安装及编译项目为可执行 exe 文件
    执行成功了!不过注意到的是,文件明显变大了许多,这里主要是它集成了 Java 所需要的运行环境。

总结

目前,这里就主要是简单的演示如何安装 GraalVM 以及 了解下 native-image 如何将 class 文件编译成可执行的 image 文件,当然不仅仅可以编译 class 文件,还可以编译 jar 包。
可以通过 native-image --help 查看到更多详细的操作,后续有时间再对 GraalVM 继续深入研究哈,谢谢大家。


一起靓,才是真靓仔

本文地址:https://blog.csdn.net/PINKMIAO/article/details/111983678

相关标签: 虚拟机 java