首页 > 图灵资讯 > 技术篇>正文

grafana 展示Java graal javafx

2023-05-18 09:19:51

1 背景

grafana 展示Java graal javafx_graavlm

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

启动速度,对docker+微服务(云原生)应用和客户端应用非常有用。

  2019年,我跟进了这个功能,并试图在windows上编译Javafx,但失败了。在搜索了stackoverflow和github后,我发现它只支持在linux上编译Javafx,并支持后续版本的windows。

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

  现在让我们再试一次。

2 编译环境
  • Intel i7-4720HQ 16G
  • Windows 10 64-bit
  • VS2019社区
  • Gralvm社区版 20.0.2
  • JDK 11
3 步骤3.1 安装gralvm

  Gralvm有两种版本,一种是oracle维护的企业版,另一种是github社区维护的社区版。我们选择社区版进行测试。

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

grafana 展示Java graal javafx_graavlm_02

  我们选择gralvmmgral-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.0JAVA_HOME=C:\java\graalvm-ce-java11-20.2.0

3.2 安装GRalvm Native-image工具

  因为Native-Image工具和Gralvm是分开发行的,所以我们必须下载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

注意事项:

  • 必须安装此工具,否则在编译过程中会报错。
  • 工具的版本应该与Gralvm的版本相匹配,否则会报错,类似:

grafana 展示Java graal javafx_github_03

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”

若出现以下输出,则编译环境正常:

grafana 展示Java graal javafx_windows编译_04

3.4 示例代码

下载

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

说明:

  • 本例由Gluon公司提供,Gluon公司是OpenJFX项目和Gralvm项目的贡献者。
  • 在示例中使用一个叫做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示例目录 HelloFX# x64初始化编译环境 "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"# 编译。它相当于clientt:compile + client:linkmvn clean client:build

输出:

grafana 展示Java graal javafx_github_05

  编译时间有点长,请耐心等待。编译这台机器需要230秒。

注意事项

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

4 效果

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

grafana 展示Java graal javafx_java_06

4.1 启动速度

秒开程度。如下图所示:

grafana 展示Java graal javafx_github_07

4.2 程序大小

  可见程序大小约为58MB。

13MB,分发给用户非常方便。

  如果在链接中排除一些不必要的内容,体积可以进一步减小。

5 局限和展望

  目前只支持windows 32-bit暂时不支持64-bit的编译。然而,随着版本的演变,未来可能会得到支持。

  如果你最近想要32-bit,试着下载Gralvm的源代码,自己编译一个32-bit版本。

6 参考资料
  • 官网Gralvm
  • Gralvm发行说明
  • Gralvm开发路线图
  • 为 JavaFX 应用生成 native image

本文是转载内容,我们尊重原作者对文章的权利。如有内容错误或侵权行为,请联系我们更正或删除文章。

上一篇 Java序列化后的字符串 java序列化作用
下一篇 jmu Java python统计字符个数 java统计中文字符个数

文章素材均来源于网络,如有侵权,请联系管理员删除。