- 浏览: 2198028 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
最新的JDK 11发布了,撒花
新版本的JDK终于有了openjdk的build提供下载鸟,总算可以让oracle jdk去死一死了,建议所有用户全部转向openjdk以避免oracle那帮闲着无聊的法务部的骚扰和监视//crossing my fingers
嗯,随着JDK 11的发布,一些重大的变化也开始显现出来,一个明显的问题就是,在JavaFX相关的群里,不断会有萌新问,找不到runtime blablabla,嗯,因为JavaFX在新版本中已经从标准JDK中拆除出来,成为了一个独立的项目,这个是他们现在的网址:
https://openjfx.io/
那我们下面说一下如何用最新版本的JavaFX,说实话,看到这么多人用JavaFX让我异常意外,不是说好的这玩意没前途嘛?必死无疑嘛?这么多人冒出来是肿么肥四?
看来只要是Java的东西,天生就会有一大堆开发者群体,只要做得好,就不愁用户
好了,程序员嘛,有问题解决问题,既然我们知道了问题,那下面就说一下怎么解决问题
如果你只是想在idea中用上javafx的话,那参考一下上面网址中的maven项目,照着做就可以了,很简单,唯一有一点点麻烦的就是在测试的时候,需要用compile exec:java -f pom.xml来启动测试,idea中run configuration的截图如下:
然后确定,然后双击就可以启动了,是不是很方便呢?
然后就可以开始写代码啦,new一个maven的project,一路按照向导点下去,生成之后,这是测试代码:
然后用maven来编译,就能在target的com/whitewoodcity文件夹下看到该Hello.class啦,然后执行刚才生成的run,就能在idea中看到效果了,ide截图如下,参考:
但是,要发送给用户的话,这样做还是不够滴,我们还需要定制我们的jre,哇哇哇,想想都激动,我的Java,听起来像是我的世界那么有趣,来看看肿么操作,其实也不难
首先我们打开openjdk的压缩包,看看它的结构,朴实无华,普通得不能再普通,你都能凭借经验猜出来,它到底是怎么搞的,有一个bin目录,里面有着所有的命令和工具,那要定制我的java或者jre,我们需要用到的是jlink这个命令,那这个命令输入help,就能看到相关参数,latte大鸟曾经说,不懂我就help,这是个好习惯,不妨学习一下,搞挨踢就应该这样,不懂你就help,看看命令会提示你什么,其实看看也能猜出来是怎么操作的
然后去http://openjfx.io上下载jmods,你要做什么操作系统上的jre,就下对应os上的jmod,比如我是macosx,那么我就下这个JavaFX Mac OS X jmods,下载完解压缩,会看到里面会有一些jmods文件,如图:
嗯,对,我升级到了MoJave,你看这名字都像是MyJava,天意?
然后我们再打开openjdk的文件夹,会看到有一个jmods的文件夹,那这两个jmods文件夹里的jmods就是我们的原材料啦,我们会用这些jmods做出一个我们自己的jre,我的Java,myJava
第一步先拷贝javafx.*.jmods到openjdk下jmods文件夹,mv,cp,或者打开finder拖,随便你
第二步执行命令,命令就是jlink啦,我们到Home文件夹下,执行以下命令:
嘎吱嘎吱一阵之后,在ls一下,就能看到多了一个myjava的文件夹,这个就是我的java啦
因为我们只用到了java.base, javafx.base, javafx.graphics, javafx.controls四个模块,其他的暂时用不到,如果将来你用到了,需要重新制作你的java runtime,不再赘述
第三步把javafx那三个jmods对应的jars下载下来,放入刚刚做好的myjava/lib中去,jars在maven central上有,任何时候找不到jars,就去Maven Repository上搜是一个好习惯,下载这几个jars:javafx-base,javafx-controls,javafx-graphics,下载下来后记得拷贝到myjava/lib里面去//这一步似乎不是必需的,可以省略,因为有了jmod,应该不需要再有jar了,但是似乎我在某一次操作的时候遇到了没有jar的问题,先留在这里,留作备份
第四步拷贝,我们再把刚才maven项目中生成的com/whitewoodcity/Hello.class整个文件夹拷贝过来,然后再把刚才做好的myjava文件夹也拷贝过来,这样我们就有了两个文件夹:
com文件夹下面是whitewoodcity/Hello.class
再然后就简单啦,我们已经有了我的java,那么启动myjava/bin/java就好啦,当然还要给这个命令喂一下参数,告诉它我们的main class在哪里,就是刚才的Hello.class啦
搞定,下图是效果:
有了命令之后,我们就可以再根据不同的os定制脚本文件,比如win下的bat,mac/linux下的bash,随便了
然后再将bat做成exe,这个工具网络上随便搜,大把,不做也没啥,无非启动时候黑一下
做成exe之后,你可以把黑一下给去掉
再然后你就可以将你的游戏上传steam上去,然后告诉steam分别在不同的os下该启动哪些命令……
如果没有steam这种平台的话,你可以做成installable files,比如macosx下的dmg,win下的exe,win下用innosetup就行了,mac下自带有工具,网络上搜一下也挺多教程的,不难
这个事情其实也给了我们一点点启迪,就是将来如果打算做一个java的游戏引擎的话,尤其是3d的图形处理,肯定要封装gpu相关的底层图形库,比如macosx下的mental,开源的vulkan(fuchsia和linux都会选择vulkan,opengl会被deprecated掉)win下的d3d这些,那么可以通过jmod的方式集成到runtime中去,JavaFX就是这么干的,可以参考JavaFX的源码,在github上有,http://openjfx.io首页上有链接
记得JavaFX群里曾经有人抱怨过说,JavaFX的3d图形api还不够强大,尤其是缺少shader等工具,嗯,那现在就有办法贡献了,有识之士可以开工了
新版本的JDK终于有了openjdk的build提供下载鸟,总算可以让oracle jdk去死一死了,建议所有用户全部转向openjdk以避免oracle那帮闲着无聊的法务部的骚扰和监视//crossing my fingers
嗯,随着JDK 11的发布,一些重大的变化也开始显现出来,一个明显的问题就是,在JavaFX相关的群里,不断会有萌新问,找不到runtime blablabla,嗯,因为JavaFX在新版本中已经从标准JDK中拆除出来,成为了一个独立的项目,这个是他们现在的网址:
https://openjfx.io/
那我们下面说一下如何用最新版本的JavaFX,说实话,看到这么多人用JavaFX让我异常意外,不是说好的这玩意没前途嘛?必死无疑嘛?这么多人冒出来是肿么肥四?
看来只要是Java的东西,天生就会有一大堆开发者群体,只要做得好,就不愁用户
好了,程序员嘛,有问题解决问题,既然我们知道了问题,那下面就说一下怎么解决问题
如果你只是想在idea中用上javafx的话,那参考一下上面网址中的maven项目,照着做就可以了,很简单,唯一有一点点麻烦的就是在测试的时候,需要用compile exec:java -f pom.xml来启动测试,idea中run configuration的截图如下:
然后确定,然后双击就可以启动了,是不是很方便呢?
然后就可以开始写代码啦,new一个maven的project,一路按照向导点下去,生成之后,这是测试代码:
package com.whitewoodcity; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.stage.Stage; public class Hello extends Application { @Override public void start(Stage stage) { String javaVersion = System.getProperty("java.version"); String javafxVersion = System.getProperty("javafx.version"); Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + "."); Scene scene = new Scene(l, 640, 480); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(); } }
然后用maven来编译,就能在target的com/whitewoodcity文件夹下看到该Hello.class啦,然后执行刚才生成的run,就能在idea中看到效果了,ide截图如下,参考:
但是,要发送给用户的话,这样做还是不够滴,我们还需要定制我们的jre,哇哇哇,想想都激动,我的Java,听起来像是我的世界那么有趣,来看看肿么操作,其实也不难
首先我们打开openjdk的压缩包,看看它的结构,朴实无华,普通得不能再普通,你都能凭借经验猜出来,它到底是怎么搞的,有一个bin目录,里面有着所有的命令和工具,那要定制我的java或者jre,我们需要用到的是jlink这个命令,那这个命令输入help,就能看到相关参数,latte大鸟曾经说,不懂我就help,这是个好习惯,不妨学习一下,搞挨踢就应该这样,不懂你就help,看看命令会提示你什么,其实看看也能猜出来是怎么操作的
然后去http://openjfx.io上下载jmods,你要做什么操作系统上的jre,就下对应os上的jmod,比如我是macosx,那么我就下这个JavaFX Mac OS X jmods,下载完解压缩,会看到里面会有一些jmods文件,如图:
嗯,对,我升级到了MoJave,你看这名字都像是MyJava,天意?
然后我们再打开openjdk的文件夹,会看到有一个jmods的文件夹,那这两个jmods文件夹里的jmods就是我们的原材料啦,我们会用这些jmods做出一个我们自己的jre,我的Java,myJava
第一步先拷贝javafx.*.jmods到openjdk下jmods文件夹,mv,cp,或者打开finder拖,随便你
第二步执行命令,命令就是jlink啦,我们到Home文件夹下,执行以下命令:
bin/jlink --module-path jmods --add-modules java.base,javafx.base,javafx.graphics,javafx.controls --output myjava
嘎吱嘎吱一阵之后,在ls一下,就能看到多了一个myjava的文件夹,这个就是我的java啦
因为我们只用到了java.base, javafx.base, javafx.graphics, javafx.controls四个模块,其他的暂时用不到,如果将来你用到了,需要重新制作你的java runtime,不再赘述
第三步把javafx那三个jmods对应的jars下载下来,放入刚刚做好的myjava/lib中去,jars在maven central上有,任何时候找不到jars,就去Maven Repository上搜是一个好习惯,下载这几个jars:javafx-base,javafx-controls,javafx-graphics,下载下来后记得拷贝到myjava/lib里面去//这一步似乎不是必需的,可以省略,因为有了jmod,应该不需要再有jar了,但是似乎我在某一次操作的时候遇到了没有jar的问题,先留在这里,留作备份
第四步拷贝,我们再把刚才maven项目中生成的com/whitewoodcity/Hello.class整个文件夹拷贝过来,然后再把刚才做好的myjava文件夹也拷贝过来,这样我们就有了两个文件夹:
com文件夹下面是whitewoodcity/Hello.class
再然后就简单啦,我们已经有了我的java,那么启动myjava/bin/java就好啦,当然还要给这个命令喂一下参数,告诉它我们的main class在哪里,就是刚才的Hello.class啦
myjava/bin/java com.whitewoodcity.Hello
搞定,下图是效果:
有了命令之后,我们就可以再根据不同的os定制脚本文件,比如win下的bat,mac/linux下的bash,随便了
然后再将bat做成exe,这个工具网络上随便搜,大把,不做也没啥,无非启动时候黑一下
做成exe之后,你可以把黑一下给去掉
再然后你就可以将你的游戏上传steam上去,然后告诉steam分别在不同的os下该启动哪些命令……
如果没有steam这种平台的话,你可以做成installable files,比如macosx下的dmg,win下的exe,win下用innosetup就行了,mac下自带有工具,网络上搜一下也挺多教程的,不难
这个事情其实也给了我们一点点启迪,就是将来如果打算做一个java的游戏引擎的话,尤其是3d的图形处理,肯定要封装gpu相关的底层图形库,比如macosx下的mental,开源的vulkan(fuchsia和linux都会选择vulkan,opengl会被deprecated掉)win下的d3d这些,那么可以通过jmod的方式集成到runtime中去,JavaFX就是这么干的,可以参考JavaFX的源码,在github上有,http://openjfx.io首页上有链接
记得JavaFX群里曾经有人抱怨过说,JavaFX的3d图形api还不够强大,尤其是缺少shader等工具,嗯,那现在就有办法贡献了,有识之士可以开工了
发表评论
-
小程序textarea完美填坑
2020-07-07 16:09 522相信做微信小程序的码友们都被textarea这个原生组件坑过 ... -
Nginx+Https自己敲命令生成证书
2020-05-18 09:35 949一、准备 环境:centos6.8 ... -
https证书生成环境搭建配置(基于Tomcat和Nginx)
2020-04-24 11:06 823一、基于Tomcat、JDK内置密钥工具: 1、生成服务端证 ... -
史上最强Tomcat8性能优化
2019-11-01 21:41 890授人以鱼不如授人以渔 ... -
SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问
2019-10-07 09:13 5621.使用jdk自带的 keytools 创建证书 打开cmd ... -
Spring Boot工程集成全局唯一ID生成器 UidGenerator
2019-09-16 09:04 857概述 流水号生成器(全局唯一 ID生成器)是服务化系统的基础 ... -
CentOS7下Redis的安装与使用
2019-08-17 11:45 608一、手动安装过程 1、准备工作(安装gcc依赖) yum ... -
Nginx与tomcat组合的简单使用
2019-08-17 10:05 431配置tomcat跳转 请求http出现400的时候在这里配置 ... -
linux下lvs+keepalived安装配置
2019-07-10 14:20 464keepalived主机:192.168.174. ... -
使用Docker搭建Tomcat运行环境
2019-02-08 21:32 4891 准备宿主系统 准备一 ... -
Netty笔记-GlobalEventExecutor
2019-02-06 23:00 6371.概念 /** * Single-thread si ... -
Netty4转发服务的实现方案
2019-02-06 15:03 1140如果用Netty做转发服务(不需要同步应答),Netty中有一 ... -
java手机号归属地查询
2018-12-25 17:16 747所需的包:carrier-1.75.jar 、geocoder ... -
基于Netty4的HttpServer和HttpClient的简单实现
2018-10-17 20:02 693Http 消息格式: Http request: Met ... -
javafx : 支持使用微调(spinner)控制的数字的文本框(NemberTextField)
2018-10-16 00:00 1095最近花了一些时间学习javaFX, 要更深入地理解新GUI包, ... -
javaFX的几个新特性,让swing彻底过时
2018-10-12 22:42 669首先声明,Java的GUI曾经 ... -
mac os系统用install4j把jar包生成app
2018-10-05 23:02 1433install4j有windows版也有mac版 mac电脑 ... -
JavaFX Alert对话框
2018-10-05 22:01 23681. 标准对话框 消息对话框 Alert alert = ... -
IDEA Properties中文unicode转码问题
2017-02-17 19:54 1039摘要: 如何让IDEA的properties中的中文进行uni ... -
spring 3中新增的@value注解
2016-11-01 09:32 642在spring 3.0中,可以通过使用@value,对一些如x ...
相关推荐
Java Runtime Environment 1.8.0是Java开发和运行应用程序必不可少的一部分,它是Oracle公司发布的Java平台标准版(Java SE)的实现。这个版本是32位的,这意味着它设计用于在32位操作系统上运行,比如Windows XP、...
Java JRE 15 已集成 JavaFX 16 是一个重要的更新,它标志着Java开发环境的进一步完善,特别是对于那些依赖JavaFX图形库的开发者来说。JavaFX是Oracle剥离出来的一个独立的开源UI框架,提供了丰富的用户界面控件和...
Java 1.8 版本是Oracle公司发布的一个重要的Java开发和运行环境,...通过这个压缩包,你可以获得运行和开发Java 1.8应用程序所需的所有核心组件,包括JDK和JRE,以及JavaFX的集成,这将帮助你构建丰富的图形界面应用。
Java had the support for ...the JavaFX runtime along with the Java runtime in the JRE. Now JavaFX 8 is considered a real successor for Swing for building the GUI application using the Java platform.
- 在“项目SDK”中选择你的Java版本,因为JavaFX自Java 11起不再包含在JDK中,所以需要使用支持JavaFX的JDK,如OpenJFX。 - 在“项目模板”中,选择“Empty Project”。 2. **配置Gradle构建脚本**: - 创建`...
Java had the support for ...the JavaFX runtime along with the Java runtime in the JRE. Now JavaFX 8 is considered a real successor for Swing for building the GUI application using the Java platform.
这些Java Jar包包含了丰富的API,涵盖了地图显示、数据处理、空间分析和地理编码等多个方面,使得开发者能够定制化地创建GIS应用程序,满足特定业务需求。 在描述中提到的“齐全、实用”是指这个Java开发包包含了...
JavaFX 是一个基于 Java 语言的软件平台,用于开发桌面应用程序、移动应用程序和网络应用程序。它提供了一个统一的编程模型,可以跨平台运行,具有高清晰度的图形用户界面和多媒体支持。 JavaFX 的主要特点包括: ...
Java的运行机制包括Java虚拟机(JVM)、Java Runtime Environment(JRE)和Java Development Kit(JDK)。JDK是Java开发人员必备的工具,包括JDK的安装、环境变量的配置、常用命令的使用等。 Java学习系列(二):...
总的来说,JavaFX是Java开发者构建富互联网应用程序的强大工具,通过学习这个官方教程,你将掌握如何利用其特性来开发功能丰富、界面美观的跨平台应用。教程会涵盖基础概念、控件使用、布局管理、事件处理、动画制作...
它可以将Java应用打包成一个独立的可执行文件,包含JRE(Java Runtime Environment)的一部分,使得用户无需预先安装Java就能运行程序。在本项目中,开发者使用Exe4j将JavaFX应用转换成了EXE格式,便于Windows用户...
Java定时关机小程序是一种利用Java编程语言实现的实用工具,它可以按照用户设定的时间自动关闭计算机。这个程序在日常生活中或企业环境中非常有用,比如在执行大量计算任务后自动关闭电脑,或者在无人值守时进行系统...
3. **Java运行时环境**: JRE提供了运行Java程序所需的库和环境,包括基础类库如Java标准类库(Java Standard Library)和JavaFX,以及垃圾收集器(Garbage Collector)用于自动内存管理。 4. **Java应用程序接口...
在Java Swing或JavaFX库中,通常会创建一个JFrame对象作为应用程序的主窗口,并在其上添加各种组件,如菜单栏、工具栏、文本区域等。EditorFrame可能会包含一个JTextArea或JTextPane用于显示和编辑代码,以及一些...
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的框架,它扩展了Java SE的功能,提供了丰富的用户界面组件和强大的图形渲染能力。在这个"基于JavaFX的简易定制化自动部署"项目中,我们关注的是...
而“直接运行”表明程序是可执行的,用户下载后无需编译即可启动,这通常得益于Java的“写一次,到处运行”的理念,通过JRE(Java Runtime Environment)就能在各种操作系统上运行。 “画面漂亮”可能暗示这个程序...
它会解释Java是如何通过JVM(Java虚拟机)实现这一特性的,并介绍Java的核心组件,如JDK(Java Development Kit)和JRE(Java Runtime Environment)。 接下来,"程序设计环境的建立"章节会指导读者如何安装配置...
jlink --module-path 模块地址 --add-modules java.base,java.compiler,java.management,java.naming,jdk.naming.dns,java.datatransfer,java.desktop,java.logging,java.prefs,java.scripting,java.xml,javafx.base...