GraalVM将Java打包原生Native应用

科长
2023-07-10 / 0 评论 / 201 阅读 / 正在检测是否收录...
GraalVM 是一种高性能 JDK,旨在加速 Java 应用程序性能,同时消耗更少的资源。 它提供了 Graal 编译器,它可以用作即时编译器,在 HotSpot JVM 上运行 Java 应用程序或提前将它们编译为本机可执行文件。除了Java,它还为JavaScript,Ruby,Python和其他几种具有多语言功能的流行语言提供了运行时。

Graalvm下载地址 Releases · graalvm/graalvm-ce-builds (github.com))

安装Graalvm环境

由于本人电脑是macos则此处演示macos的安装和使用方法。在其他系统中安装方式大同小异,都是相当于添加一个新的jdk环境

首先去官网下载对应自己平台和版本的包。

image-20230710094641856

我是MacOS M1,使用Java11环境,所所以此处我选择的是 macOS(aarch64)的包。下载完成后进行解压,移动到指定位置

sudo mv graalvm-ce-java11-22.3.1 /Library/Java/JavaVirtualMachines/

然后删除隔离属性

 sudo xattr -r -d com.apple.quarantine /Library/Java/JavaVirtualMachines/graalvm-ce-java11-22.3.1

添加环境变量

image-20230710095302480

添加完环境变量后使其生效

image-20230710095453443

如果输入java -version 输出 OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 11.0.18+10-jvmci-22.3-b13)则表示环境已经添加成功了,整个步骤就是在添加一个新的Java环境

IDEA集成Graalvm

image-20230710095834576

IDEA新增项目,并在新增界面添加新的JDKAdd JDK,新建项目并编写一个main方法

image-20230710100154689

在mavenpom.xml中增加graalvm的打包插件

<build>
  <plugins>
    <plugin>
      <groupId>org.graalvm.buildtools</groupId>
      <artifactId>native-maven-plugin</artifactId>
      <configuration>
        <!-- imageName用于设置生成的二进制文件名称 -->
        <imageName>${project.artifactId}</imageName>
        <!-- mainClass用于指定main方法类路径 -->
        <mainClass>com.bystart.Main</mainClass>
        <buildArgs>
          --no-fallback
        </buildArgs>
      </configuration>
    </plugin>
  </plugins>
</build>

打包测试

输入打包命令进行打包

mvn -Pnative native:compile

或者使用IDEA的maven工具打包

image-20230710100904524

运行测试

image-20230710101023968

0

评论 (0)

取消