首页 > 系统相关 >如何在Windows上从源代码构建OpenJFX 8

如何在Windows上从源代码构建OpenJFX 8

时间:2023-06-19 16:34:34浏览次数:52  
标签:rt bin Windows OpenJDK JavaFX build Oracle 源代码 OpenJFX


所以你已经听到了这个消息。Oracle震惊世界,改变了Java和相关技术的支持路线图,发布周期等。但是,您的业务'JavaFX应用程序(及其依赖项)在Oracle JDK 8上运行。您喜欢稳定性,因为如果您不这样做,您的业务软件可能会失败,导致您花钱或更糟 - 让您破产和/或还是欠债

那么这对Oracle JDK / JavaFX 8的商业用户意味着什么呢?两件事情:

我们多年来一直受到的第一次免费的公共支持,就像一个与生俱来的权利一样,很快就会结束。

在2019年1月之后,如果没有Oracle的商业许可,将不会为“商业,商业或生产用途”提供Oracle JDK 8的公开更新。

第二,JavaFX支持也即将结束。

JavaFX 8的免费支持将提供到2022年3月,JavaFX将从Java SE 11中删除,Java SE 11已经在我们面前。

“Winging”对于严肃的企业来说,它不是一个选择,因为使用没有安全更新,错误修复或其他支持的Oracle JDK 8充其量只是一个可怕的风险,更糟糕的是,灾难性的; 从Java 11开始,企业可能无法在没有许可证的情况下在生产中使用Oracle JDK 11。

以防你错过了它

您可以在此处完整地找到Java客户端路线图更新文档。 

Oracle Java SE支持路线图

所以现在怎么办?

解决方案:OpenJDK。到目前为止,OpenJDK显然是Java和JVM的未来; 有关更多信息,请参见此处 在某种程度上,这是Sun一直想要的传真 - 一个免费和开放的Java。通过上述更改,Oracle为Linux,Mac和Windows提供了二进制OpenJDK版本。但是,它不维护或提供OpenJDK 8二进制文件。如果您在Linux机器上运行,这可能不是问题,因为在许多Linux平台上都维护着OpenJDK发行版。但是如果你在Windows上呢?这里的情况有点不同。

有一些人(例如@chriswhocodes和Sky Land Universal Corporation)提供他们自己的OpenJFX版本。但是,依靠这些第三方提供OpenJFX构建可能不符合您的需求。他们欠你什么,可以在没有警告的情况下明天关闭。此外,您将依赖于它们提供的构建的完整性。

然而,好消息是,由于OpenJFX(一个OpenJDK项目是Oracle JFX上游),您可以在开放的情况下编译和构建JavaFX - 在GPL v2下使用Classpath Exception。

此外,由于JavaFX与JVM的分离正在向前发展,因此切换到OpenJFX将使您的业务直接与未来的工作方式保持一致,希望能够实现更顺畅的升级。但请注意,一家名为Gluon的公司,OpenJFX的事实上的社区管理员,在您准备进行切换时提供OpenJFX 11版本。这一切的美丽?如果你不愿意,你不必使用Gluon的版本,尽管它们非常支持并且是JavaFX社区中进化的驱动力。

来自OpenJDK社区的支持

到目前为止,尚未解决2019年1月以后的Java 8支持问题。这就是神奇的地方。社区成员,包括但不限于IBM,RedHat,Azul,Eclipse和AdoptOpenJDK,已经提供了支持Java 8支持的计划,直到2023年(大多数),这是Oracle打算在日期之后的一年。结束对JavaFX的公共支持。

因此,在AdoptOpenJDK之类的分发版上运行OpenJFX将使您的业务能够在JavaFX 8上保留至少到2022年3月。此外,AdoptOpenJDK为OpenJDK提供二进制文件,使您无需构建OpenJDK来自源的二进制文件。

出于本文的目的,我们将展示如何在Windows上设置开放式Java / JavaFX解决方案。

先决条件

  • 耐心和希望
  • Windows 10 x64(早期版本和其他架构也可以工作)
  • 一个代码(文本)编辑器,如Notepad ++或Sublime,这是首选。
  • 几GB的空间

路线

  1. 打开文本编辑器和终端。
  2. 下载AdoptOpenJDK 8 x64(https://adoptopenjdk.net/index.html)。您可以选择您喜欢的JVM。但请注意,为了本教程的目的,我选择了HotSpot。
  3. 提取“OpenJDK8U-jdk_x64_windows_hotspot_8u192b12.zip”的内容或包含OpenJDK的存档名称,并复制到您将记住的路径,例如C:\ java \ adoptOpenJDK \ java8。将此路径的纯文本以及C:\ java \ adoptOpenJDK8 \ bin复制到所选文本编辑器中的新文件。
  4. 下载并安装Cygwin(https://cygwin.com/install.html)。继续使用默认值(从Internet安装,C:\ cygwin64,所有用户,下载目录...,使用系统代理设置,选择一个镜像......)对我来说,我创建了C:\ cygwin64 \ downloads并将其用作从命令提示符下载目录(mkdir C:\ cygwin64 \ downloads。)将C:\ cygwin64 \ bin复制到您的文本文件,现在列表中有三个目录。
  5. 在安装程序提示的select packages阶段,选择并安装以下软件包。当您将视图更改为pending时,您应该找到所有这些选择。

6.下载并安装“Direct SDK June 2010”(https://www.microsoft.com/en-us/download/details.aspx?id=6812)。

7.在文本文件中,输入两个新行,然后将“DSDK_DIR”C:\ Program Files(x86)\ Microsoft DirectX SDK(2010年6月)\“复制到您的文本文件中。

8.使用TortoiseSVN x64(https://www.mercurial-scm.org/wiki/Download#Windows)下载并安装Mercurial 。

9.下载Gradle 4.8(https://gradle.org/next-steps/?version=4.8&format=all),解压缩,然后将〜\ Downloads \ gradle-4.8-all \ gradle-4.8的内容复制到C:\ gradle这个\ 4.8。(mkdir C:\ gradle \ 4.8)

10.下载Apache Ant(https://ant.apache.org/bindownload.cgi)并将压缩的压缩文件夹的内容解压缩到C:\ apache \ ant-1.8.2 \。将“C:\ apache \ ant-1.8.2 \ bin”添加到文本文件列表中。

11.下载Microsoft Visual Studio 2017 Professional安装程序,并免费试用(https://visualstudio.microsoft.com/downloads/)并运行该应用程序。

12.导航到“安装位置”。验证安装位置是否为“C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional”。

13.导航到“单个组件”。向下滚动到底部并选中“Windows 8.1 SDK”。点击安装并继续,无需工作负载。

14.重新启动计算机。

15.设置PATH和环境变量

  • 打开Windows文件资源管理器。
  • 将光标拖动到最左侧的窗格,然后右键单击“此PC”
  • 在上下文菜单下,选择“属性”
  • 您现在将位于显示有关PC的基本信息的目录中(控制面板\所有控制面板项目\系统)。在左侧窗格中,您会注意到“高级系统设置”。选择此项。
  • 导航到“高级”选项卡,然后选择“环境变量”。
  • 你会看到两个主要的盒子。第一个名为“<user name here>的用户变量”,最下面的名称为“系统变量”。
  • 双击“Path”系统变量。
  • 警告:编辑任何用户或环境变量时要非常小心。继续需要您自担风险。未能正确配置环境变量可能导致PC运行不正常。
  • 从文本文件中添加或确保环境路径中存在以下目录,然后单击“确定”。
C:\ java \ adoptOpenJDK8 \ bin 
 C:\ gradle \ 4.8 \ bin 
 C:\ apache \ ant-1.8.2 \ bin 
 C:\ cygwin64 \ bin 
 C:\ Program Files \ TortoiseHg \JDK_HOME - -C:\ java \ adoptOpenJDK8 
 DXSDK_DIR - - C:\ Program Files(x86)\ Microsoft DirectX SDK(2010年6月)\JAVA_HOME - - C:\ java \ adoptOpenJDK8 VS100COMNTOOLS - - C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ Tools \ 
 WINSDK_DIR - - C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin

16.验证PATH是否设置正确(如果您愿意,可以检查其他人)

验证Gradle使用的JVM是否为AdoptOpenJDK版本而不是其他版本!如果使用Oracle JDK而不是OpenJDK,则构建将失败。

17.在终端中,运行命令mkdir C:\ java \ javafx

18.在终端中,运行命令chdir C:\ java \ javafx

19.在终端中,运行命令将OpenJDK源克隆到当前目录hg clone http://hg.openjdk.java.net/openjfx/8u-dev/rt

20.克隆成功完成后,在文本编辑器中打开〜/ rt / build.gradle。导航到第745行int ib = v.indexOf(" (build");。您将看到该行。将其更改为以下内容:int ib = v.indexof("(build");

21.导航到第747行。您将看到该行String ver = v.substring(ib + 8, v.size() - 1);。将其更改为以下内容:String ver = v.substring(ib + 7, v.size()-1);

22.在文本编辑器中打开〜/ rt / buildSrc / win.gradle。导航到第142行?"WINDOWS_VS_VSINSTALLDIR/VC/BIN/amd64。您将看到该行。将其更改为以下内容?"WINDOWS_VS_VSINSTALLDIR/VC/BIN

23. [可选]在终端中,运行命令gradlew tasks --all。这将显示此项目的所有可用Gradle任务。

24.在终端中,只需运行命令即可gradlew

成功的构建过程看起来像这样。

25.运行一些测试。请注意,OpenJFX中有几个项目。通过运行以下命令在基础项目上运行测试:gradlew :base:test。如果成功,将在~rt / buildSrc / build / reports / tests / test / index.html中提供构建报告

26.导航到〜/ rt / apps / samples / build.xml并注释掉有关Ensemble8的第14行和第20行。

27.在〜/ rt / apps / samples / build.xml中注释掉第3322-3325行并保存文件。它应该如下所示:

/ *ant.project.executeTarget( “scenebuilderSampleAppsJar”)if(!t.name.startsWith(“arm”)){ant.project.executeTarget( “scenebuilderAppJar”)}* / 
28.在〜/ rt / apps / samples / build.xml和注释掉第3337-3340行,它应如下所示:
/ *ant.project.executeTarget( “scenebuilderSampleAppsClean”)if(!t.name.startsWith(“arm”)){ant.project.executeTarget( “scenebuilderAppClean”)}* /

 

29.运行命令gradlew zipsgradlew zips -Dorg.gradle.java.home-C:\java\adoptOpenJDK8创建叠加层。如果成功,它应该如下所示:

30.解压缩〜\ rt \ build \ bundles \ javafx-sdk-overlay.zip。

导航到JAVA_HOME的位置。

将〜\ rt \ build \ bundles \ javafx-sdk-overlay \ bin的内容复制到$ JAVA_HOME \ bin。

将〜\ rt \ build \ bundles \ javafx-sdk-overlay \ lib的内容复制到$ JAVA_HOME \ lib。

将〜\ rt \ build \ bundles \ javafx-sdk-overlay \ jre \ bin的内容复制到$ JAVA_HOME \ jre \ bin。

将〜\ rt \ build \ bundles \ javafx-sdk-overlay \ jre \ lib的内容复制到$ JAVA_HOME \ jre \ lib。

31.删除解压缩的文件夹〜\ rt \ build \ bundles \ javafx-sdk-overlay。针对adoptOpenJDK8 + openJFX8运行一些示例代码。

标签:rt,bin,Windows,OpenJDK,JavaFX,build,Oracle,源代码,OpenJFX
From: https://blog.51cto.com/u_16145034/6515620

相关文章

  • windows ,go powershell 测试并且性能分析
    benchamark并且性能分析gotest-runnone-bench.-benchmem-cpuprofilecpu.prof-memprofilemem.prof;Start-Job{gotoolpprof-http=:10000.\cpu.prof};Start-Job{gotoolpprof-http=:10001.\mem.prof}-bench表示执行哪些基准测试函数,后面可以加需要执行......
  • 【电商平台api接口】获取lazada商品评论获取评论内容、评论日期、买家昵称、评论商品
    ​ 请求获取Lazada商品评论(免费获取测试)的作用如下:1.了解商品质量:通过获取Lazada商品评论,可以了解商品的质量、使用感受等信息,从而更好地了解商品的优缺点,为购买者提供更为准确的参考。2.搜集用户反馈:通过搜集Lazada商品评论,可以了解用户对商品的反馈和意见,了解用户的需求和......
  • windows10安装Oracle数据库
    Oracle数据库安装流程配置压缩包资源:链接:https://pan.baidu.com/s/19ElajYQIosiBcM84ZRiIVg提取码:07061.首先提前再除C盘的任意一个盘符里新建一个Oracle文件夹,并将这俩个安装包压缩到其文件夹下,解压完的文件夹如下database。  2、进入database文件夹可执行安装文件......
  • Windows 10 开启子系统Ubuntu
    卸载原有的wsl分发子系统#查看已安装的wsl子系统wsl--list#依次删除wsl子系统wsl--unregister<子系统名称>结果安装子系统Ubuntu20.04在MicrosoftStore中搜索Ubuntu,选择对应版本安装。安装完成后,不要直接点开安装完成后,不要直接点击打开直接安装默认安装在C......
  • API接口开发系列(获得京东JD商品详情原数据java源代码调用示例)
    ​请求获取京东商品详情原数据(免费获取调用)的作用:1.提供商品信息:京东商品详情中的原数据可以提供商品的基本信息,包括商品名称、价格、品牌、规格参数、图片等,让消费者更好地了解商品。2.帮助搜索引擎识别:京东商品详情的原数据可以被搜索引擎识别,在搜索结果页中显示更为详细丰富......
  • app直播源代码,JS生成随机数,生成指定位数的随机数
    app直播源代码,JS生成随机数,生成指定位数的随机数<html><script> //获取指定位数的随机数 functiongetRandom(num){  letrandom=Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,num-1)); } //调用随机数函数生成10位数的随机......
  • API接口开发系列(获得京东JD商品详情原数据java源代码调用示例)
    请求获取京东商品详情原数据(免费获取调用请私信)的作用:1.提供商品信息:京东商品详情中的原数据可以提供商品的基本信息,包括商品名称、价格、品牌、规格参数、图片等,让消费者更好地了解商品。2.帮助搜索引擎识别:京东商品详情的原数据可以被搜索引擎识别,在搜索结果页中显示更为详细丰富......
  • Windows服务器定时重启设置教程 103.216.155.x
    Windows系统的任务计划程序,可以添加计划任务,设置任务开始时间及执行的间隔,实现应用的自动执行。例如:实现定时重启、关机等常见的功能。如何使用参考以下步骤1、新建一个文本文件,将文件后缀改为bat,然后添加如下代码shutdown-r-f-t 0该命令的作用是立即强制重启机器。在文件中单......
  • Windows10搭建NFS服务
    1.下载haneWINNFSServerforWindows链接如下:https://www.hanewin.net/nfs-e.htm2.安装并且执行haneWINNFSServer安装完后,打开hanWin如下:进入Edit->Preferences进入Exports->Editexportsfile2.1修改配置文件添加一行配置如下:D:\ldc_res-name:nfs*(rw,sync......
  • Windows调试Oracle数据库问题的一些手段
    最近需要在Windows的跳板机上访问远程的Oracle数据库进行调试。Windows中只有个精简版OracleClient,以及PLSQLDeveloper客户端。如果用惯了Linux,再用Windows,确实不知所措。但这就是个从生疏到熟练的事儿,最近看的一本书中描述得很恰当,Themosteffectivewaytodealwithaworry......