GraalVM 将 Java 程序编译成可执行文件(maven 工程,没有依赖其他jar)

说明

maven工程,没有引入其他jar,只是使用jdk的功能,使用idea编译成本地可执行程序

修改pom.xml

增加下面 plugin插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.graalvm.nativeimage</groupId>
            <artifactId>native-image-maven-plugin</artifactId>
            <version>21.2.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>native-image</goal>
                    </goals>
                    <phase>package</phase>
                </execution>
            </executions>
            <configuration>
                <!-- imageName用于设置生成的二进制文件名称 -->
                <imageName>findport${version}</imageName>
                <!-- mainClass用于指定main方法类路径 -->
                <mainClass>findport.FindPort</mainClass>
                <!-- native image 编译参数文档:https://docs.oracle.com/en/graalvm/enterprise/20/docs/reference-manual/native-image/NativeImageMavenPlugin/ -->
                <buildArgs>
                    <!-- 构建独立的可执行文件,不依赖jdk -->
                    --no-fallback
                </buildArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

参数解释:https://www.graalvm.org/22.0/reference-manual/native-image/Options/

编译成可执行文件

方式一(简单)

idea

按照下图修改

打包

通过 idea 的 maven 执行 package 命令,即可生成

提示:可能有问题

方式二

在 工程根目录下 执行下面命令:

mvn -Pnative clean package

结果

在 target 目录有 可执行文件


原文出处:/show_1IX5t1itdejY.html