网站首页 > java教程 正文
在这个章节中,主要介绍以下内容:
如何编写模块化的Java程序。
如何编译模块化程序。
如何将模块化代码打包成模块化的JAR文件。
如何运行模块化程序。
在本章中,将介绍如何使用模块 —— 从编写源代码到编译,打包和运行程序。 本章分为两部分。 第一部分显示使用命令行编写和运行模块程序的所有步骤。 第二部分使用NetBeans IDE重复相同的步骤。
到目前,NetBeans IDE仍在开发中,并且不支持所有JDK 9功能。 例如,目前需要NetBeans为创建的每个模块创建一个新的Java项目。 在最终版本中,NetBeans将允许在一个Java项目中拥有多个模块。 当使用命令提示符时,我会使用更多Java9 特有的选项相对于使用 NetBeans时。
本章介绍的程序非常简单。 当程序运行时,它打印一个消息和主类所属模块的名称。
一. 使用命令提示符
以下小节介绍使用命令提示符创建和运行第一个模块的步骤。
1. 设置目录
将使用以下目录层次结构来编写,编译,打包和运行源代码:
C:\Java9Revealed C:\Java9Revealed\lib C:\Java9Revealed\mods C:\Java9Revealed\src C:\Java9Revealed\src\com.jdojo.intro
这些目录在Windows系统上设置的。 在非Windows操作系统上,你也可以设置类似的目录层次结构。 C:\Java9Revealed是顶级目录,它包含三个子目录:lib,mods和src。
src目录用于保存源代码,其中包含一个com.jdojo.intro的子目录,并创建一个同名的com.jdojo.intro的模块,并将其源代码保存在这个子目录下。 在这种情况下,是否有必要将子目录命名为com.jdojo.intro? 答案是不。 子目录可以是不同的名字,或者可以将源直接存储在src目录中,而不需要com.jdojo.intro子目录。 但是,最好将目录命名为与模块名称相同的模块的源代码。 如果遵循这个命名约定,Java编译器将有一些选项可一次编译多个模块的源代码。
使用mods目录将已编译的字节码保存在展开的目录层次结构中。 如果需要,可以使用此目录中的代码运行应用程序。
在编译源代码之后,将其打包成一个模块化的JAR并将其存储在lib目录中。 可以使用模块化JAR来运行程序,也可以将模块JAR提供给需要运行程序的其他开发人员。
在本节的剩余部分会使用一个目录(如src或src\com.jdojo.intro)的相对路径。 这些相对路径是相对于C:\Java9Revealed目录。 例如,src表示C:\Java9Revealed\src。 如果使用非Windows操作系统或其他目录层次结构,请进行适当的调整。
2. 编写源代码
你可以选择自己喜欢的文本编辑器(例如Windows上的记事本)来编写源代码。 首先创建一个名为com.jdojo.intro的模块。下面是模块声明的代码。
// module-info.java module com.jdojo.intro { }
模块声明很简单。 它不包含模块描述语句。 将其保存在src\com.jdojo.intro目录下名为module-info.java的文件中。
然后创建一个名为Welcome的类,将它保存在com.jdojo.intro包中。 请注意,包的名字与模块具有相同的名称。 但必须保持模块和包名称相同吗? 答案是否。 也可以选择所需的任何其他包名称。 该类将具有一个主方法public status void main(String [] args)。 该方法将作为应用程序的入口点。 在此方法内打印消息。
Welcome类中的打印出模块的名称。 JDK 9在java.lang包中添加了一个名为Module的类。 Module类的一个实例代表一个模块。 JDK 9中的每个Java类都是模块的成员,甚至是int,long和char等原始类型。 所有原始类型都是java.base模块的成员。 JDK 9中的Class类有一个名为getModule()的新方法,它返回该类作为其成员的模块引用。 以下代码打印了Welcome类的模块名称。
Class<Welcome> cls = Welcome.class; Module mod = cls.getModule(); String moduleName = mod.getName(); System.out.format("Module Name: %s%n", moduleName);
提示:
所有原始数据类型都是java.base模块的成员。 可以使用int.class.getModule()获取int基本数据类型所属模块的引用。
下面的代码是Welcome类中的代码。并保存在名为Welcome.java的文件中,目录是com\jdojo\intro,它是src\com.jdojo.intro目录的子目录。 此时,源代码文件的路径将如下所示:
C:\Java9Revealed\src\com.jdojo.intro\module-info.java
C:\Java9Revealed\src\com.jdojo.intro\com\jdojo\intro\Welcome.java
// Welcome.java package com.jdojo.intro;public class Welcome { public static void main(String[] args) { System.out.println("Welcome to the Module System."); // Print the module name of the Welcome class Class<Welcome> cls = Welcome.class; Module mod = cls.getModule(); String moduleName = mod.getName(); System.out.format("Module Name: %s%n", moduleName); } }
猜你喜欢
- 2024-10-18 Java入门教程六(内置包装类)(javaint包装类)
- 2024-10-18 Java 9揭秘-创建你的第一个模块(二)
- 2024-10-18 【推荐】IntelliJ IDEA 使用系列教程(6)-IDEA 创建 Java 项目
- 2024-10-18 Java 9揭秘-创建你的第一个模块(三)
- 2024-10-18 MyBatis——MyBatis开发流程(mybatis的开发环境怎么搭建)
- 2024-10-18 java+上传整个文件夹的所有文件(java中文件上传)
- 2024-10-18 Java 如何获得一个文件或文件夹的大小
- 2024-10-18 JAVA+上传整个文件夹的所有文件(java实现上传文件夹)
- 2024-10-18 Java SE基础教程——Eclipse开发工具的安装与使用
- 2024-10-18 一起学Java-06-创建Maven项目(推荐)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)