您现在的位置是:首页 > 文章详情

宇连通 IM 之 Graalvm 打包

日期:2025-04-24点击:83

宇连通IM之PC客户端系统进行GraalVm进行打包。

1,安装Visual studio2022版,安装C++桌面开发组件,如下图:

   

2,安装graalvm-jdk-21.0.7+8.1,并配置GRAAL_HOME和JAVA_HOME的值。

3,对项目增加打包配置,使用gluonfx打包插件,配置如下:

<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.8</version>
    <configuration>
        <options>
            <option>--add-opens</option>
            <option>java.base/java.lang.reflect=com.jfoenix</option>
            <option>--add-opens</option>
            <option>javafx.graphics/javafx.scene=org.controlsfx.controls</option>
            <option>-Dfile.encoding=UTF-8</option>
        </options>
    </configuration>
    </executions>
</plugin>
<plugin>
                <groupId>com.gluonhq</groupId>
                <artifactId>gluonfx-maven-plugin</artifactId>
                <version>1.0.27-SNAPSHOT</version>
                <configuration>
                    <target>host</target>
                    <mainClass>${mainClassName}</mainClass>
                    <releaseConfiguration>
                        <skipSigning>true</skipSigning>
                        <description>appDescription</description>
                        <vendor>vendor</vendor>
                    </releaseConfiguration>
                    <resourcesList>
                        <list>.*\\.properties$</list>
                    </resourcesList>
                    <bundlesList>
                        <list>web</list>
                        <list>media</list>
                    </bundlesList>
                    <runtimeArgs>
                        <arg>-Dfile.encoding=UTF-8</arg>
                    </runtimeArgs>
                    <nativeImageArgs>
                        <arg>-H:+AddAllCharsets</arg>
                        <arg>-H:IncludeResources=".*$"</arg>
                        <arg>-H:IncludeResources="ldh/im/fxbase/.*$"</arg>
                        <arg>--allow-incomplete-classpath</arg>
                        <arg>--no-fallback</arg>
                        <arg>-H:+ReportUnsupportedElementsAtRuntime</arg>
                        <arg>-H:ClassInitialization=org.slf4j:build_time</arg>
                        <arg>--initialize-at-run-time=java.beans</arg>
                        <arg>--initialize-at-build-time=java.beans.Introspector$1</arg>
                        <arg>--initialize-at-build-time=javafx.beans</arg>
                        <arg>--initialize-at-build-time=com.sun.beans</arg>
                        <arg>--initialize-at-build-time=org.slf4j</arg>

                        <arg> --initialize-at-build-time=java.beans.Introspector</arg>
                        <arg> --initialize-at-build-time=org.slf4j.simple.SimpleLogger</arg>
                        <arg> --initialize-at-build-time=com.sun.beans.introspect.ClassInfo</arg>
                        <arg> --initialize-at-build-time=com.sun.beans.introspect.MethodInfo</arg>
                        <arg> --initialize-at-build-time=com.sun.beans.TypeResolver</arg>
                        <arg> --initialize-at-run-time=io.netty.util.internal.logging.Log4JLogger</arg>

                        <arg> --initialize-at-run-time=ldh.im.fxgui.service.MessageReadService</arg>
                        <arg>--initialize-at-build-time=ldh.im.dto.enums.MessageType</arg>
                        <arg> --initialize-at-build-time=ldh.im.fxgui</arg>


                        <arg>--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED</arg>
                        <arg>-H:-CheckToolchain</arg>
                    </nativeImageArgs>
                    <linkerArgs>
                        <arg>management_ext.lib</arg>
                        <arg>psapi.lib</arg>
                    </linkerArgs>
                </configuration>
            </plugin>

4,打包命令

   mvn gluonfx:run  此命令运行项目

   mvn gluonfx:runagent   生成native-image需要配置文件: 反射,资源,JNI,代理等配置文件

   mvn gluonfx:build   进行打包,生成exe文件

   mvn gluonfx:nativerun  运行exe,能够输出日志

按照上面的步骤操作,就能够顺利打包成功。

运行生成的exe,项目启动速度明显提高了,内存占用有大幅度降低,IM系统运行的内存占用通常会控制在300M以内。

原文链接:https://www.oschina.net/news/346439
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章