到目前为止,您可能已经听说过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 bu​​ild 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相关推荐

  1. java jigsaw_60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld

    java jigsaw 到目前为止,您可能已经听说过Java 9的新模块系统,即项目Jigsaw. 如果您不了解Java 9的新模块系统,则应该访问Mark Reinhold的论文"模块系统 ...

  2. Linux 入门必看:如何60秒内分析Linux性能

    作者:helightxu,腾讯 IEG 开发工程师 本文来自公众号:黑光技术 当你登陆一台 Linux 服务器之后,因为一个问题要做性能分析时:你会在第 1 分钟内做哪些检测呢? 在 Netflix, ...

  3. 如何在 60秒内优化提升 Linux 性能?只有 2% 的人知道

    当你发现 Linux 服务器上的系统性能问题,在最开始的 1 分钟时间里,你会查看哪些系统指标呢? Netflix 在 AWS 上有着大规模的 EC2 集群,以及各种各样的性能分析和监控工具.比如我们 ...

  4. 如何有效的在 60 秒内进行 Linux 服务器性能故障分析

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 感谢前辈,光荣属于前辈. 掌握一些性能优化工具和方法,这就需要在工作中不断地积累:计算机基础知识很重要,比如说网络 ...

  5. JS点击获取验证码后60秒内禁止重新获取(防刷新)

    JS点击获取验证码后60秒内禁止重新获取(防刷新) 参考 · 阅读文章: JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效) 注意: 场景:在登录页点击发送啊验证码按钮,开始进入倒计时,在第3 ...

  6. 60秒内快速入睡方法

    该方法非常简单,只需用鼻子吸气4秒钟,屏住呼吸7秒钟,最后呼气8秒钟即可. 3个周期后,您会感到困倦.刚开始时您可能不熟悉和困倦,但是每天只需要这样做2天.其次,在适应了6-8周后,您可以在60秒内迅 ...

  7. 【ChatGPT与网络安全攻击】AI密码破解器可在60秒内攻破50%以上普通密码

    研究表明,ChatGPT等功能强大AI工具已经被用于网络攻击者实施犯罪活动,例如开发恶意软件和生成钓鱼邮件等.如果人们的密码从数据库泄露或被破坏,那么网络攻击者采用AI密码破解器猜出密码是概率几乎是1 ...

  8. Heroku + node.js错误(Web进程在启动后60秒内未能绑定到$ PORT)

    本文翻译自:Heroku + node.js error (Web process failed to bind to $PORT within 60 seconds of launch) I hav ...

  9. 粉丝不足5万的公众号,怎么在60秒内变现?

    距2012年的公众号元年至今,公众号走过了4年的历程,"一条广告20万""公众号估值1000万"这样的神话不在少数,越来越多的企业.团体.个人开通了公众号,想要 ...

最新文章

  1. 视图需要创建类吗_建筑类的职称需要先评初级吗
  2. matlab循环标注,for循环
  3. 中国蚁剑的下载、安装与使用
  4. linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF
  5. 这些数据分析方法你都掌握了么
  6. Ubuntu+Win7+Samba实现文件共享
  7. Use Amazon VM to try Openstack (1) (with DevStack)
  8. setinterval 和 ajax,JavaScriptsetInterval和“this”解决方案
  9. 数据地图搜索功能模块项目总结【springBoot+Elasticsearch】
  10. 做网站如何选阿里云服务器呢?
  11. 杭州电子科技大学acm--2017
  12. 暴笑新东方老师老罗语录(转)
  13. 样本类别分布不均衡 imbalance 问题的处理
  14. google s2 java开发文档
  15. c语言编程图形篮球,c语言程序设计 用高级语言实现篮球联赛个人技术数据处理系统...
  16. android获取手机资源文件,android MediaStore 读取手机文件
  17. 学习笔记 查分约束系统
  18. exfat fat_正确的名称是exFAT还是FAT64?
  19. 用户聊天记录存储表(亿级别)优化及分片策略
  20. 7-33 地下迷宫探索 (30 分)

热门文章

  1. 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
  2. Spring入门(一)之简介
  3. 如何用xshell上宝塔
  4. mybatis-plus 错误java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
  5. python flask项目过程_Python 开发过程遇到的问题
  6. raid配置ssd为缓存_超融合硬件选配推荐指南 | 第三期:SSD 与 HDD
  7. phpst安装memcache扩展_在 Ubuntu/Debian 下安装 PHP7.3 教程
  8. ROC和AUC介绍以及如何计算AUC
  9. ReviewForJob(1)数据结构与算法分析引论
  10. java泛型程序设计——调用遗留代码