60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld
到目前为止,您可能已经听说过Java 9的新模块系统,即项目Jigsaw。 如果您不了解Java 9的新模块系统,则应访问Mark Reinhold的论文“模块系统的状态” 。 此外,您还应该访问@nipafx Nicolai Parlog的出色博客, 网址为http://blog.codefx.org。在那里,他详细介绍了Java 9的新模块系统和许多场景。
在本文中,我将尝试向您展示如何在60秒内使用Java 9的模块系统创建JavaFX Helloworld应用程序。
要求
在撰写本文时,Java 9仍处于早期访问阶段,这意味着您需要在https://jdk9.java.net/download/上获取最新版本。
- JDK 9 EA build 114或更高版本( JDK 9 EA )
使用说明
假设您已经安装了JDK并设置了适当的环境变量。 另外,您将需要进入命令提示符或终端并键入:java -version来验证已安装的JDK。 例如。
步骤1:在主目录中为项目创建目录,例如分别用于Windows OS,Linux和MacOS的目录。 另外,在helloworld项目目录下创建一个src目录。
# Windowsc:\Users\myusername>md helloworldc:\Users\myusername>md helloworld/src# Linux/user/home/myusername $ mkdir -p helloworld/src# Mac/Users/myusername$ mkdir -p helloworld/srccd helloworld
步骤2:根据Java 9的新方法来组织源代码和模块,使用简单的命名约定创建目录。
创建一个名为模块的目录,例如: com.mycompany.helloworld 。 假设当前目录为<用户的主目录> / helloworld /
mkdir src/com.mycompany.helloworld
步骤3:根据HelloWorld.java文件的程序包名称空间创建目录。 在此简单示例中,将使用以下目录结构创建主Helloworld.java :
mkdir -p src/com.mycompany.helloworld/com/mycompany/helloworld
目录应如下所示:
<User Home dir>/helloworld/src/com.mycompany.helloworld/com/mycompany/helloworld/
步骤 4: 创建一个module-info.java文件。 这使编译器知道应用程序需要编译和运行哪些核心模块依赖性,例如javafx模块。 在helloworld / src / com.mycompany.helloworld目录下创建一个名为module-info.java的文件。 将下面的代码复制并粘贴到module-info.java文件中。 使用vi,nano或记事本。
module com.mycompany.helloworld {requires javafx.base;requires javafx.graphics;requires javafx.controls;exports com.mycompany.helloworld;
}
步骤 5: 创建HelloWorld.java应用程序文件。 该文件将在目录helloworld / src / com.mycompany.helloworld / com / mycompany / helloworld /中创建。 将下面的代码复制并粘贴到HelloWorld.java应用程序中。
package com.mycompany.helloworld;import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;/*** A JavaFX Hello World*/
public class HelloWorld extends Application {/*** @param args the command line arguments*/public static void main(String[] args) {Application.launch(args);}@Overridepublic void start(Stage stage) {stage.setTitle("Hello World");Group root = new Group();Scene scene = new Scene(root, 300, 250);Button btn = new Button();btn.setLayoutX(100);btn.setLayoutY(80);btn.setText("Hello World");btn.setOnAction( actionEvent -> System.out.println("Hello World"));root.getChildren().add(btn);stage.setScene(scene);stage.show();}
}
步骤 5: 使用带有编译模块位置的-d选项编译源代码。 新的helloworld模块的目录是mods / com.mycompany.helloworld 。
javac -d mods/com.mycompany.helloworld src/com.mycompany.helloworld/module-info.java src/com.mycompany.helloworld/com/mycompany/helloworld/HelloWorld.java
步骤 6: 将Hello World应用程序作为模块执行。 在将模块编译到mods目录中之后,您现在将使用Java 9的新-modulepath选项来指定已编译模块的目录。 另外,您将指定-m选项以执行该模块及其主类HelloWorld。 使用以下命令:
java -modulepath mods -m com.mycompany.helloworld/com.mycompany.helloworld.HelloWorld
上一条命令的输出:
结论
不知道您是否花费了60秒以上的时间,但是假设您的环境已设置并且JDK 9已安装,您应该能够在几秒钟内剪切和粘贴代码。 我发现新的Java 9模块系统非常简单。 尽管为了让编译器知道模块在哪里有一些额外的输入,但实际上它与-classpath选项没有什么不同。
我可以看到大型项目可以将组件分解为模块并从中受益。 我相信在Java世界中,这确实是令人兴奋的时刻,因为工具将能够构建精简的可执行文件,从而缩短加载时间。 我觉得这已经是很长一段时间了,但是一个非常需要的功能将鼓励我们编写,管理和部署模块化软件。
翻译自: https://www.javacodegeeks.com/2016/04/javafx-helloworld-using-java-9s-project-jigsaw-60-seconds.html
60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld相关推荐
- java jigsaw_60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld
java jigsaw 到目前为止,您可能已经听说过Java 9的新模块系统,即项目Jigsaw. 如果您不了解Java 9的新模块系统,则应该访问Mark Reinhold的论文"模块系统 ...
- Linux 入门必看:如何60秒内分析Linux性能
作者:helightxu,腾讯 IEG 开发工程师 本文来自公众号:黑光技术 当你登陆一台 Linux 服务器之后,因为一个问题要做性能分析时:你会在第 1 分钟内做哪些检测呢? 在 Netflix, ...
- 如何在 60秒内优化提升 Linux 性能?只有 2% 的人知道
当你发现 Linux 服务器上的系统性能问题,在最开始的 1 分钟时间里,你会查看哪些系统指标呢? Netflix 在 AWS 上有着大规模的 EC2 集群,以及各种各样的性能分析和监控工具.比如我们 ...
- 如何有效的在 60 秒内进行 Linux 服务器性能故障分析
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 感谢前辈,光荣属于前辈. 掌握一些性能优化工具和方法,这就需要在工作中不断地积累:计算机基础知识很重要,比如说网络 ...
- JS点击获取验证码后60秒内禁止重新获取(防刷新)
JS点击获取验证码后60秒内禁止重新获取(防刷新) 参考 · 阅读文章: JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效) 注意: 场景:在登录页点击发送啊验证码按钮,开始进入倒计时,在第3 ...
- 60秒内快速入睡方法
该方法非常简单,只需用鼻子吸气4秒钟,屏住呼吸7秒钟,最后呼气8秒钟即可. 3个周期后,您会感到困倦.刚开始时您可能不熟悉和困倦,但是每天只需要这样做2天.其次,在适应了6-8周后,您可以在60秒内迅 ...
- 【ChatGPT与网络安全攻击】AI密码破解器可在60秒内攻破50%以上普通密码
研究表明,ChatGPT等功能强大AI工具已经被用于网络攻击者实施犯罪活动,例如开发恶意软件和生成钓鱼邮件等.如果人们的密码从数据库泄露或被破坏,那么网络攻击者采用AI密码破解器猜出密码是概率几乎是1 ...
- Heroku + node.js错误(Web进程在启动后60秒内未能绑定到$ PORT)
本文翻译自:Heroku + node.js error (Web process failed to bind to $PORT within 60 seconds of launch) I hav ...
- 粉丝不足5万的公众号,怎么在60秒内变现?
距2012年的公众号元年至今,公众号走过了4年的历程,"一条广告20万""公众号估值1000万"这样的神话不在少数,越来越多的企业.团体.个人开通了公众号,想要 ...
最新文章
- 视图需要创建类吗_建筑类的职称需要先评初级吗
- matlab循环标注,for循环
- 中国蚁剑的下载、安装与使用
- linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF
- 这些数据分析方法你都掌握了么
- Ubuntu+Win7+Samba实现文件共享
- Use Amazon VM to try Openstack (1) (with DevStack)
- setinterval 和 ajax,JavaScriptsetInterval和“this”解决方案
- 数据地图搜索功能模块项目总结【springBoot+Elasticsearch】
- 做网站如何选阿里云服务器呢?
- 杭州电子科技大学acm--2017
- 暴笑新东方老师老罗语录(转)
- 样本类别分布不均衡 imbalance 问题的处理
- google s2 java开发文档
- c语言编程图形篮球,c语言程序设计 用高级语言实现篮球联赛个人技术数据处理系统...
- android获取手机资源文件,android MediaStore 读取手机文件
- 学习笔记 查分约束系统
- exfat fat_正确的名称是exFAT还是FAT64?
- 用户聊天记录存储表(亿级别)优化及分片策略
- 7-33 地下迷宫探索 (30 分)
热门文章
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
- Spring入门(一)之简介
- 如何用xshell上宝塔
- mybatis-plus 错误java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
- python flask项目过程_Python 开发过程遇到的问题
- raid配置ssd为缓存_超融合硬件选配推荐指南 | 第三期:SSD 与 HDD
- phpst安装memcache扩展_在 Ubuntu/Debian 下安装 PHP7.3 教程
- ROC和AUC介绍以及如何计算AUC
- ReviewForJob(1)数据结构与算法分析引论
- java泛型程序设计——调用遗留代码