当前位置: 首页 > 面试题库 >

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

陈毅
2023-03-14
问题内容

JavaFX
11是否跨平台?正如我在openjfx.org中看到的那样,我必须下载每个平台的发行版。如果是这样,我可以以任何方式跨平台使用它吗?我应该为每个Java版本使用每个javafx版本吗?不要告诉我使用Maven之类的东西。我想编写一个跨平台软件。每个操作系统的每个发行版都没有多版本软件。检查操作系统后,我无法加载模块,但是我可以这样做吗?无论如何,有很多跨平台的库,即使它们都有本机代码,那么为什么OpenJFX不这样做呢?


问题答案:

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.basejavafx.graphicsjavafx.controlsjavafx.fxml

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

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



 类似资料:
  • 问题内容: JVM正常退出后是否删除目录?还是我需要手动递归删除临时目录内容? 问题答案: 按照API的要求,不,不是,您需要使用方法手动删除目录。 与createTempFile方法一样,此方法只是临时文件工具的一部分。关机挂钩或File.deleteOnExit()机制可用于自动删除目录。

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 问题内容: 我想开发一个跨平台的应用程序。 Java是跨平台的吗?我的意思是,我可以在Windows中开发Java应用程序并在Mac OS X和Linux中使用它吗? 如果是,怎么办? 我发现用Java编写的应用程序有两个安装文件,一个用于Windows,另一个用于Mac。 这使我感到困惑。 任何插图或建议将不胜感激。 问题答案: Java是跨平台的吗? 从某种意义上说,Java是跨平台的, 即已

  • 我有一个外部配置单元表,其中有诸如year=2017,year=2018之类的分区,在它们内部,我还有year=2017和year=2018的每个月的分区。 如果是内部表,会发生什么情况?

  • 本文向大家介绍PHP语言的一大优势是跨平台,什么是跨平台?相关面试题,主要包含被问及PHP语言的一大优势是跨平台,什么是跨平台?时的应答技巧和注意事项,需要的朋友参考一下 PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows、Linux等)上配置,不受操作系统的限制,所以叫跨平台

  • null 当我执行时,它会告诉我并且我执行并且它返回1.6。 注意:稍加摆弄,就可以使用IntelliJ和JDK7,见这里。