栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从jdk跨平台删除JavaFX后,它是否会出现?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从jdk跨平台删除JavaFX后,它是否会出现?

JavaFX 11不再是JDK的一部分,现在以两种形式分发:

  • 作为https://gluonhq.com/products/javafx/中的 SDK 。
  • 通过Maven Central,例如https://search.maven.org/artifact/org.openjfx/javafx-controls/11/jar

下载JavaFX SDK时,必须 选择
一个平台,与为平台安装JDK时一样。就API而言,它仍然是跨平台的,因此您的代码在每个平台上看起来都是相同的,但是就SDK /依赖性而言,它是特定于平台的。

这样做的原因是每个SDK都捆绑了本机库。

如果您查看三个JavaFX 11 SDK捆绑包,每个压缩包的大小约为40 MB:

  • Windows:压缩后为39.7 MB,dll库中为64.8 MB(
    jfxwebkit.dll
    只有59.2 MB),jar和源文件中为15.5 MB。
  • Mac:压缩后为39.7 MB,dylib库中为72.2 MB(
    libjfxwebkit.dylib
    只有67.8 MB),jar和源中为15.6 MB。
  • Linux:压缩后为43.8 MB,因此库中为84.9 MB(
    libjfxwebkit.so
    只有80.1 MB),jar和源中为15.8 MB。

现在的问题是:您会将三个平台捆绑在一起吗?总压缩大小为120 MB,三个平台的未压缩本机库大约为220 MB?

正是在openjfx-dev邮件列表中对此问题进行了辩论,但是我相信所采用的方法是正确的。

如果使用Maven / Gradle并从Maven
Central检索依赖项,则必须在Gradle上为平台指定分类器。请参阅入门示例。Maven在内部进行操作,因此,即使您未设置分类器,它也只会下​​载适用于您平台的jar。

因此,对于一个普通的项目,你不使用的WebView,它可能是有意义的,因为你会为你的平台只下载所需模块的依赖:

javafx.base
javafx.graphics
javafx.controls
javafx.fxml

但是到目前为止,这已经是不可更改的了,您可以获得与平台无关的JavaFX API,但具有特定于平台的JavaFX SDK /模块。

请注意,分发JavaFX应用程序时,将使用Jpackager,并且将为三个不同的平台发布三个不同的版本,因此无论哪种方式,都需要特定于平台的分发。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497948.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号