DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录.
  • DmozDir.org
DMOZ目录快速登录入口-免费收录各类优秀网站的中文网站目录.由人工编辑,并提供网站分类目录检索及地区分类目录检索,是站长免费推广网站的有力平台!

Windows下使用Graalvm将Javafx应用编译成exe

  • Windows下使用Graalvm将Javafx应用编译成exe

  • 已被浏览: 54 次2021年01月10日    来源:  https://www.cnblogs.com/dehai/p/14258391.html
  • 1 背景Graalvm是Oracle推出的一款新型虚拟机,其中一个吸引人的功能是:它可以将Java代码编译成各个平台的本地代码,这些平台包括:linux、macOS、windows、iOS、android。这个功能可以极大地加快Java程

    1 背景

    image

      Graalvm是Oracle推出的一款新型虚拟机,其中一个吸引人的功能是:它可以将Java代码编译成各个平台的本地代码,这些平台包括:linux、macOS、windows、iOS、android。

      这个功能可以极大地加快Java程序的启动速度,它对于docker+微服务(云原生)应用,以及客户端应用非常有用。

      2019年的时候我就有跟进过这个功能,并尝试在windows上编译Javafx,不过失败了。在查找了stackoverflow和github之后,发现它当时仅支持linux上编译Javafx,对wiindows的支持要到后续的版本。

      最近我又看到新的进展,发现Graavlm社区版从20.0.2(2020年8月)开始支持javaFx在windows本地编译。

      现在让我们再来尝试一下吧。

    2 编译环境

    • Intel i7-4720HQ 16G
    • Windows 10 64-bit
    • VS2019社区
    • Graalvm社区版 20.0.2
    • JDK 11

    3 步骤

    3.1 安装graalvm

      Graalvm有2种版本,一是oracle维护的企业版,二是github社区维护的社区版。我们选择社区版来测试。

      首先到github上下载Graalvm社区版,可以看到有很多下载项:

    clip_image004

      我们选择graalvm-ce-java11-windows-amd64-20.2.0.zip。下载完毕后,将它内容解压至:

    C:\java\graalvm-ce-java11-20.2.0

     

      然后设置windows环境变量:

    GRAALVM_HOME=C:\java\graalvm-ce-java11-20.2.0
    
    JAVA_HOME=C:\java\graalvm-ce-java11-20.2.0

     

    3.2 安装GRaalvm Native-image工具

      由于Native-Image工具与Graalvm是分开发行的,所以我们还要下载Native-Imag工具。下载地址为:

    https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/native-image-installable-svm-java11-windows-amd64-20.2.0.jar

     

      下载完毕后,执行:

    gu -L install native-image-installable-svm-java11-windows-amd64-20.2.0.jar

     

    注意事项:

    • 必须安装这个工具,否则编译时会报错。
    • 工具的版本要跟Graalvm的版本匹配,否则会报错,类似于:

    clip_image006

    3.3 安装vs2019社区版

    下载地址

    https://visualstudio.microsoft.com/zh-hans/vs/

     

    安装的注意事项

    • 工作负载请选择:使用C ++桌面开发;
    • 语言包请选择:英语。
    • 路径请使用默认的。
    • 详细的安装过程就不赘述了,请参考教程:《安装VS2019(C/C++)详细教程》

     

    测试

    打开命令行,执行:

    # 初始化x64的编译环境。
    call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\ Build\vcvars64.bat”

     

    如果出现以下的输出,就说明编译环境是正常的:

    clip_image008

     

    3.4 示例代码

    下载

    git clone https://github.com/gluonhq/client-samples.git

     

    说明:

    • 本示例由Gluon公司提供的,Gluon公司是OpenJFX项目和Graalvm项目的贡献者。
    • 示例中使用一个名为client-maven-plugin的插件,它封装了native-image的相关命令,简化了打包操作。
    • client-maven-plugin插件文档:https://docs.gluonhq.com/#_the_gluon_client_plugin_for_maven

     

    3.5 编译

    执行命令

    # 进入示例目录
    
    cd gluon-samples-master
    # 进入HelloFx示例目录 cd HelloFX
    # 初始化x64编译环境 call
    "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
    # 编译。它相当于client:compile
    + client:link mvn clean client:build

     

    输出:

    clip_image010

      编译的时间有点长,请耐心等待。本机编译耗时230秒。

     

    注意事项

    • 必须保证有足够的剩余内存,最好在5GB以上,否则有可能会报内存不足的错误。
    • 暂时关闭安全软件。安全软件会拖慢编译速度,生成的exe文件可能被误删。

     

    4 效果

      进入 HelloFx/target/client/x86_64-windows目录,可以看到一个名为HelloFx.exe的文件。如下图所示:

    clip_image012

    4.1 启动速度

      双击HelloFx.exe执行,可以发现启动速度非常快,达到了秒开的程度。如下图所示:

    clip_image013

    4.2 程序大小

      可以看到,程序大小约为58MB。

      用7zip压缩后,仅为13MB,分发给用户非常方便。

      如果在链接时排除掉一些不用的内容,体积可以进一步减小。

     

    5 局限和展望

      目前它仅支持windows 64-bit的编译,32-bit暂时不支持。不过随着版本的演进,未来可能会支持。

      如果近期就想要32-bit的,可以尝试下载Graalvm的源码,自己编译一个32-bit的版本。

     

    6 参考资料

    • Graalvm官网
    • Graalvm发行说明
    • Graalvm开发路线图
    • 为 JavaFX 应用生成 native image

    以上信息来源于网络,如有侵权,请联系站长删除。

    TAG:编译成 Graalvm windows exe Javafx

  • 上一篇:ssh问题之复盘
  • 与“Windows下使用Graalvm将Javafx应用编译成exe”相关的资讯
  • windows是什么操作系统
  • 【应急响应】Windows应急响应入门手册
  • Windows下使用poetry和pyproject.toml
  • 我也要出现在这里 | 更多 最新推荐

    • 河北富宇环保设备有限公司
Powered by DMOZ中文网站分类目录 DmozDir.org

      河北富宇环保设备有限公司

      河北富宇环保设备有限公司是专业从事UV光氧,VOC催化燃烧设备,布袋除尘器,小型除尘器,脉冲除尘器,单机除尘器,旋风除尘器,湿式除尘器及除尘器骨架,除尘器布袋,电磁脉冲阀,脉冲控制仪,星型卸料器等。

      www.chuchenhb.com
    • 河北富宇环保设备有限公司
Powered by DMOZ中文网站分类目录 DmozDir.org

      河北富宇环保设备有限公司

      河北富宇环保设备有限公司生产各种规格石料厂除尘器、白灰窑除尘器、仓顶布袋除尘器、脉冲单机除尘器、除尘器袋笼、除尘布袋、电晕线、卸料器、减速机、电磁阀、膜片等各种除尘器配套产品。

      www.bthbchuchen.com

    更多>>> 入站排行

    1. 莞讯网

      莞讯网立足互联网服务东莞市民,将有高价值“新闻”及时有效地传播给东莞人民。

      www.guannews.com
    2. 搜励志网

      搜励志网为您提供励志文章,励志名言,励志段子,名人故事,励志签名,励志视频,励志音乐,励志视频,励志演讲,励志书籍等励志类文字信息分享网站。

      www.guannews.com
    3. 城经网

      城经网(www.cteo.com.cn)是继报纸、电台、电视台后的第四媒体,是中国成长最快的区域性中心城市门户网之一。集中了优秀的媒介平台,将资讯和在线服务垂直触及到普通民众,享有信息共享.

      www.guannews.com
    4. WordPress企业主题模版 - WPYOU.com

      提供WordPress企业主题,WordPress外贸主题,WordPress企业模版,WordPress企业主题下载,WordPress企业建站,WordPress CMS门户主题开发

      www.guannews.com
    5. 富士变频器

      富士变频器中国区销售公司是一家集富士变频器,维修富士变频器的企业,能为客户提供迅捷,优质的富士变频器维修和富士变频器保养。 主要服务有富士变频器,富士变频器报价,富士变频器代理销售等

      www.guannews.com