- 浏览: 2203490 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 529相信做微信小程序的码友们都被textarea这个原生组件坑过 ... -
Nginx+Https自己敲命令生成证书
2020-05-18 09:35 955一、准备 环境:centos6.8 ... -
https证书生成环境搭建配置(基于Tomcat和Nginx)
2020-04-24 11:06 828一、基于Tomcat、JDK内置密钥工具: 1、生成服务端证 ... -
史上最强Tomcat8性能优化
2019-11-01 21:41 911授人以鱼不如授人以渔 ... -
SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问
2019-10-07 09:13 5661.使用jdk自带的 keytools 创建证书 打开cmd ... -
Spring Boot工程集成全局唯一ID生成器 UidGenerator
2019-09-16 09:04 861概述 流水号生成器(全局唯一 ID生成器)是服务化系统的基础 ... -
CentOS7下Redis的安装与使用
2019-08-17 11:45 613一、手动安装过程 1、准备工作(安装gcc依赖) yum ... -
Nginx与tomcat组合的简单使用
2019-08-17 10:05 444配置tomcat跳转 请求http出现400的时候在这里配置 ... -
linux下lvs+keepalived安装配置
2019-07-10 14:20 466keepalived主机:192.168.174. ... -
使用Docker搭建Tomcat运行环境
2019-02-08 21:32 4941 准备宿主系统 准备一 ... -
Netty笔记-GlobalEventExecutor
2019-02-06 23:00 6441.概念 /** * Single-thread si ... -
Netty4转发服务的实现方案
2019-02-06 15:03 1146如果用Netty做转发服务(不需要同步应答),Netty中有一 ... -
java手机号归属地查询
2018-12-25 17:16 750所需的包:carrier-1.75.jar 、geocoder ... -
基于Netty4的HttpServer和HttpClient的简单实现
2018-10-17 20:02 701Http 消息格式: Http request: Met ... -
javafx : 支持使用微调(spinner)控制的数字的文本框(NemberTextField)
2018-10-16 00:00 1100最近花了一些时间学习javaFX, 要更深入地理解新GUI包, ... -
javaFX的几个新特性,让swing彻底过时
2018-10-12 22:42 670首先声明,Java的GUI曾经 ... -
mac os系统用install4j把jar包生成app
2018-10-05 23:02 1440install4j有windows版也有mac版 mac电脑 ... -
JavaFX Alert对话框
2018-10-05 22:01 23811. 标准对话框 消息对话框 Alert alert = ... -
IDEA Properties中文unicode转码问题
2017-02-17 19:54 1051摘要: 如何让IDEA的properties中的中文进行uni ... -
spring 3中新增的@value注解
2016-11-01 09:32 643在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.
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 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...
JRE(Java Runtime Environment)则是运行Java应用程序所必需的环境,包括JVM和必要的类库,但不包含开发工具。用户只需安装JRE即可运行Java应用程序,而开发者则需要JDK来进行开发和测试。 Java SE 6引入了一些...