Java 9 : 从零开始实现模块化(一)
Well, Java 9 is available so let’s make modules!
模块化在Java9中是炒鸡炒鸡重要的!今后,模块将是应用程序的基础构建单位。无论是使用动态语言或静态语言编写,模块都是应用程序的一个重要组成部分,且模块遵循单一功能原则。你可以将任意方法称为模块,正如函数式编程也是基于模块一样。好了,总之,你get到这个点之后就记住:以后模块很重要很重要很重要 The important thing is need to be said 3 times!
步骤:
- 步骤1:下载Java 9并安装
- 步骤2:创建一个模块java文件
- 步骤3:模块文件路径
- 步骤4:编写一个模块
- 步骤5:向我们的模块添加代码
- 步骤6:编译我们的模块
- 步骤7:运行我们的模块
1、下载Java 9并安装
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
下载后,只需点击它即可进行安装(如果您在MacOS上),并确认已安装:
tomerb@tomerb-mac.local:~$ java --version
java 9-ea
Java(TM) SE Runtime Environment (build 9-ea+164)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+164, mixed mode)
tomerb@tomerb-mac.local:~$ cd ~/tmp
tomerb@tomerb-mac.local:~$ mkdir -p ~/tmp/java9-modules
tomerb@tomerb-mac.local:~$ cd ~/tmp/java9-modules
2、创建一个模块java文件
在Java 9中,为了定义模块,需要为java文件设定一个特别的名字,建议为: module-info.java
3、模块文件路径
module-info.java
应该放在哪里呢?按照惯例,应该把它放在和模块名相同的目录下。
如果你的模块名称是com.me.mymodule那么你的模块 module-info.java 应该放在:src/com.me.mymodule这使您的 module-info.java 文件放在:src/com.me.mymodule/module-info.java 路径。得到它了? <module-path> == <module name>
4、编写一个模块
现在我们知道我们的模块 filename 和我们的模块 filepath,我们来编写一个具有这个命名和文件夹约定的模块:
tomerb@tomerb-mac.local:~/tmp/java9-modules$ mkdir -p src/com.me.mymodule
tomerb@tomerb-mac.local:~/tmp/java9-modules$ vi src/com.me.mymodule/module-info.java
module com.me.mymodule { }
至此,我们就完成了一个模块的编写!
5、向我们的模块添加代码
在这一步中,我们将向我们的模块添加一些代码!在同一目录下创建一个新的java文件来作为我们的模块:
$ mkdir -p src/com.me.mymodule/com/me/mymodule
$ vi src/com.me.mymodule/com/me/mymodule/Main.java
注意我们代码中的目录名称。为什么这样做呢? 我们首先输入我们模块所在的路径,然后我们为源代码创建完整的包名称。在这种情况下, /com/me/mymodule
在 /com.me.mymodule
的上层。只是我们的源文件属于我们的模块,并且模块已经在Java 9惯例的标准模块目录中。
所以,我们就在Main.java编写hello world:
package com.me.mymodule;
public class Main {public static void main(String[] args) {System.out.println("Hello World from Module! :)"); // nothing special here, standard java < 9 class.}
}
6、编译我们的模块
首先制作 mods
目录(我们将进一步传递给: java --module-path
):
$ mkdir -p mods/com.me.mymodule
$ javac -d mods/com.me.mymodule \src/com.me.mymodule/module-info.java \src/com.me.mymodule/com/me/mymodule/Main.java
轻动你高贵的手指,让编译器再跑一会儿!
7、运行我们的模块
$ java --module-path mods -m com.me.mymodule/com.me.mymodule.Main
Hello World from Module! :)
总结
在这部分中,我们下载了Java 9,创建了一个模块,向其中添加了一个源文件,并运行它。我们看到在创建源代码时创建模块路径和类似的东西时,需要遵循一个命名约定。
原文:https://dzone.com/articles/java-9-tutorial-step-by-step-from-zero-to-modules
Java 9 : 从零开始实现模块化(一)相关推荐
- 使用Java语言从零开始创建区块链
使用Java语言从零开始创建区块链 2018年04月01日 17:08:12 大侠区块链 阅读数:1312 标签: java区块链java区块链 更多 个人分类: 区块链 Java区块链开发与交流群: ...
- 使用Java语言从零开始创建区块连
使用Java语言从零开始创建区块连: http://developer.51cto.com/art/201803/568032.htm
- java 模块设计模式_Java9模块化学习笔记二之模块设计模式
模块设计的原则: 1.防止出现编译时循环依赖(主要是编译器不支持),但运行时是允许循环依赖的,比如GUI应用 2.明确模块的边界 几种模块设计: API模块,聚合模块(比如java.base) 可选依 ...
- java 模块开发_java模块化开发
利用java默认作用域实现类限制访问 大多数开发者在创建java类时,往往不假思索就是public,这样意味着所有人都可以访问.这样在大型项目开发中往往造成混乱,导致代码难以维护. public 类 ...
- windows java eclipse_从零开始学 Java - Windows 下安装 Eclipse
三观是什么鬼 当我们在讨论「三观一致」的时候是在讨论些什么? 我认为这个世界上本没有「三观」这一说法,说的人多了,也就有了「三观」这个词,当我们讨论「三观一致」其实并不是真的在说世界观.价值观.人生观 ...
- 【Java基础】JDK9 模块化
本文所有内容均摘录自互联网,文末有参考文献,仅做整理和记录. 背景 本篇文章,我们将了解下 Java 9 带给我们的新特性-- Java 平台模块化系统(JPMS, Java Platform Mod ...
- (JAVA)从零开始之--打印流PrintStream记录日志文件
这里的记录日志是利用打印流来实现的. 文本信息中的内容为String类型.而像文件中写入数据,我们经常用到的还有文件输出流对象FileOutputStream. 1 File file = new F ...
- 写给java初学者,从零开始学习java开发的完整学习路线
要问编程王者是谁?自然是非java莫属!发展了20多年,学习java的人络绎不绝.不管是有计算机基础还是没有基础,都想学习这门前途无量的技术.这时候有人担心了,零基础该怎么学java呢?会不会困难重重 ...
- 挖矿区块链_使用Java语言从零开始创建区块链
目前网络上关于区块链入门.科普的文章不少,本文就不再赘述区块链的基本概念了,如果对区块链不是很了解的话,可以看一下我之前收集的一些入门学习资源:http://blog.51cto.com/zero01 ...
- quartz java spring_从零开始学 Java - Spring 使用 Quartz 任务调度定时器
生活的味道 睁开眼看一看窗外的阳光,伸一个懒腰,拿起放在床一旁的水白开水,甜甜的味道,晃着尾巴东张西望的猫猫,在窗台上舞蹈.你向生活微笑,生活也向你微笑. 请你不要询问我的未来,这有些可笑.你问我你是 ...
最新文章
- [20170622]传输表空间与dblink.txt
- 其他OJ 树型DP 选课
- java-------------华为-----------字符串链接最长路径查询
- 修改 class_带你探索JVM的Class文件结构
- 超适合新手的Oracle查询语句
- OpenCASCADE:调试工具和提示
- Java黑皮书课后题第10章:10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点
- Golang Hash MD4
- webpack入门+路由配置
- 在Linux上使用Qt编译WebKit
- 酷站60个漂亮可用的外文站点欣赏(经典推荐)
- python怎么打开h5文件_Python 操作 HDF5文件
- 文件监控脚本 -- Linux bash
- 东秦OJ_1841: 超级密码
- DDR4的特性与电气参数
- linux gadget 模拟鼠标,HID设备--开发板模拟鼠标
- OSI七层网络模型概念
- 不定积分——类似1/(1+e^x)的积分
- python怎么选取第几行第几列_python DataFrame获取行数、列数、索引及第几行第几列的值方法...
- 一键分享功能ShareSDK