JAVA17安装体验JFX17抢先体验
JAVA17安装体验JFX17抢先体验
java17版本是长期支持版,至少更新5年以上。而且商用免费!这里我就来体验一把。
一、下载配置 java 17
官网下载地址:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
当前的版本是17.0.1 2021年11月14日13:37:42
下载zip版本,解压到C:\Program Files\Java\jdk-17.0.1,接着配置环境变量。
二、多jdk版本环境变量配置
由于我原来已经安装java8,需要做多环境变量设置。
1、创建一个:JAVA17=C:\Program Files\Java\jdk-17.0.1
2、创建一个:JAVA8=C:\Program Files\Java\jdk1.8.0_202
3、创建一个:JAVA_HOME=%JAVA17%
若想切java8只需要改下JAVA_HOME=%JAVA8%
如下:

配置环境变量:Path中添加:%JAVA_HOME%\bin、%JAVA_HOME%\jre\bin
注意,环境变量不能放在最前面,即%JAVA_HOME%\bin这种不能在path的最前面,必须是非变量放前面,否则变量无效。我放在第三第四

此时:Win + R cmd: java -version

若不生效可以打开一个cmd:
set path=11
echo path
再关闭此cmd,重新打开cmd即可!以此做到刷新path的效果。

至此java17配置完毕,将Maven项目改一下:

pom.xml

<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
刷新Maven,运行一个javafx发现会报缺少javafx组件:

若用idea2021.2.x版本,初始化JavaFX项目选择Maven可以正常运行,可惜我这是2020版本的IDEA,需要额外配置。
二、IDEA配置openjfx17
配置openjfx也可以参考:https://blog.csdn.net/weixin_44480167/article/details/120357719
我们知道,javafx已经在jdk11还是9、10哪个版本来着,将此作为独立的GUI维护,并推荐使用OpenJFX。OpenJFX的下载地址:https://openjfx.cn/dl/我这里下载17.0.1的zip版本。
将OpenJFX17解压到C:\Program Files\Java\javafx-sdk-17.0.1,
配置idea的application启动,添加启动参数,将模块引入:
--module-path "C:\Program Files\Java\javafx-sdk-17.0.1\lib" --add-modules javafx.controls,javafx.fxml
启动

public class JavaFxDemo extends Application {
@Override
public void start(Stage stage) throws Exception {
// 定义一个标签,类似html中的span
Label label = new Label("hello world!");
// 将标签加入场景,场景类似 HTML中的 body, 将span放到body中
// 将场景放到stage中,类似HTML 中的将 body 放到 html标签里一样
stage.setScene(new Scene(label));
// 设置舞台的宽高标题
stage.setWidth(400);
stage.setHeight(100);
stage.setTitle("师姐,你好!");
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
三、试用idea2021.2.3开发Javafx
ps:很多人找不到idea的免费试用30天按钮,你需要登录了才能选择试用30天,嘿嘿~
idea高版本直接帮我们集成了javafx的Maven版:

还贴心提供了几个库给我们用,我们只选择最基本的即可:

新版idea2021.2.3+javafx17完美运行起来!

下一篇我将结束javafx打包exe,就会用到C:\Program Files\Java\javafx-sdk-17.0.1中的内容!
JAVA17安装体验JFX17抢先体验的更多相关文章
- .NET Core 2.0和ASP.NET Core 2.0正式版抢先体验
.NET Core 2.0和ASP.NET Core 2.0正式版抢先体验 .NET Standard 2.0 is final Broad platform support. .NET Standa ...
- JeecgBoot版本4月份新版即将发布,抢先体验。。
JeecgBoot版本4月份新版即将发布,抢先体验.. 即将发布版本-更新日志: 1.代码生成器GUI工具 2.支持一对多代码生成器 3.支持按钮权限 4.支持数据权限 ...
- JEECG前后端分离UI框架实战版本抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)
JEECG前后端分离UI框架实战版本 - 抢先体验 (ng2-admin+Angular4+AdminLTE) 关键词: ng2-admin.Angular4.AdminLTE.Nodejs.Jeec ...
- JEECG前后端分离UI框架实战抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)
JEECG前后端分离UI框架 (ng2-admin+Angular4+AdminLTE) 关键词: ng2-admin.Angular4.AdminLTE.Nodejs.Jeecg JEECG紧跟技术 ...
- 安装配置FreeBSD9全过程体验
安装配置FreeBSD9全过程体验(时长11分钟) 总所周知,FreeBSD是一个高效.稳定的UNIX操作系统.在今年年初,FreeBSD 又发布了9.0版本,它将采用全新的文本安装器,升级ZFS文件 ...
- 慕课网go语言体系课抢先体验
慕课网go语言体系课抢先体验,课程分四个阶段: <第一阶段go语言基础语法篇>,从go语言基础语法篇讲起,go语言环境集成,常用开发工具集成,常用数据类型讲解,流程控制,函数,结构体,方法 ...
- Apache Hudi集成Spark SQL抢先体验
Apache Hudi集成Spark SQL抢先体验 1. 摘要 社区小伙伴一直期待的Hudi整合Spark SQL的PR正在积极Review中并已经快接近尾声,Hudi集成Spark SQL预计会在 ...
- 一分钟安装DolphinScheduler并上手体验
一分钟安装Apache DolphinScheduler并上手体验 1 一分钟安装DolphinScheduler并上手体验 本教程基于DolphinScheduler1.3.2 2 需要准备: 一台 ...
- RTC月度小报5月丨教育aPaaS灵动课堂升级、抢先体验VUE版 Agora Web SDK、声网Agora与HTC达成合作
本月亮点速览 产品与技术: 声网Agora 教育 aPaaS 灵动课堂升级 视频通话/语音通话/互动直播 Native SDK 升级上线 3.4.2 版本 视频通话/语音通话/互动直播 Web SDK ...
- cygwin简介,安装及卸载(体验UNIX & Linux环境)
对于爱好者或初学者来说,为了体验UNIX & Linux环境,去安装虚拟机或双系统稍显麻烦,cygwin是一个很好的选择 具/原料 安装windows的电脑一台(可以联网) 法/步骤 ...
随机推荐
- std::for_each易忽略点
以下代码为修改vector内部的每一个元素,使其每个元素大小变为原来的平方. std::vector v1{1, 2, 4, 2}; std::for_each(begin(v1), end(v1), ...
- ASP.NET 6启动时自动创建MongoDB索引
大家好,我是Edison. 最近,在使用MongoDB时,碰到这样的一个需求:针对某个Collection手动在开发环境创建了索引,但在测试环境和生产环境不想再手动操作了,于是就想着通过代码的方式在A ...
- replace批量替换、表删除数据查询用法
一. select * from baec_file where bacti='1'order by baec01; select baec02,REPLACE(baec02,'白班','A班') f ...
- FFmpeg: How To Convert MP4 Video To MP3 Audio?
FFmpeg: How To Convert MP4 Video To MP3 Audio? Learn how to Convert an MP4 Video to MP3 Audio wit ...
- python3 gui 计时器
# -*- coding: utf-8 -*- # @Time : 2023/4/4 21:53 # @File : 定时器gui.py # @Software: PyCharm Community ...
- Python如何在日志中隐藏明文密码
Python如何在日志中隐藏明文密码 前言 在项目开发中,有的时候会遇到一些安全需求,用以提升程序整体的安全性,提高外来非法攻击的门槛,而在日志中隐藏明文密码打印便是最典型的安全需求之一. 在Pyth ...
- 山东大学&安恒校赛CTF
1.babyshell 这段代码是一个函数seccom,它使用seccomp机制来限制进程的系统调用权限.seccomp是一种Linux内核的安全模块,可以用于过滤或限制进程可以执行的系统调用. 具体 ...
- CF671D Roads in Yusland 题解
题目链接 题目要求我们求出选出若干条路径并最小化花费,如果这是在链上,我们可以考虑直接枚举每条路径的右端点 dp,那树呢?把路径剖分整个覆盖的集合就不一定连续了,没法 dp,况且题目里给了很强的条件: ...
- [Python急救站课程]九九乘法表打印
打印九九乘法表 for i in range(1, 10): for j in range(1, i + 1): print("{}*{}={:2} ".format(j, i, ...
- [Python急救站课程]日期和时间的输出
日期和时间的输出 from datetime import datetime # 引用datetime 库 now = datetime.now() # 获得当前日期和时间信息 print(now) ...