java分布式事务解决方案 java分布式框架技术方案

本文将指导您如何在java中创建一个简单的模块。核心步骤包括定义`module-info.java`文件以导出您的包,并确保将其正确的路径为一个jar文件,其中`module-info.java`文件。类`根目录。文章演示如何使用`jar`工具验证创建的模块。
引言:Java模块Jigsaw位于项目,来自Java 9Java应用程序的可伸缩性、安全性和性能。它通过将JDK和应用程序JavaScript块掌握JPMS的基础。
一、定义模块信息:module-info.class`根目录。 java
一个Java模块的核心是其模块接口文件module-inf o.java。下载Java.base(这是所有模块的隐式依赖),并且只需要外部公开一个包,那么module-info.java的结构会非常简洁。
立即学习“Java免费学习笔记(深入)”;
1. 创建module-info.java文件。
2. 导出包使用exports关键字名称声明模块要对外提供的包。
// src/main/java/module-info.javamodule org.foo.bar {exports org.foo.bar.pkgname;}登录后复制
在这个例子中:org.foo.bar是您的模块。exports org.foo.bar.pkgname;表示模块org.foo.bar将org.foo.b ar.pkgname包中的公共类和接口接口提供任何需要它的模块。
二、构建模块化的JAR文件
定义了module-info.java文件后,下一步是编译您的源代码“Modular”(Modular JAR)。
1. #假设你的源代码在 src/main/java 目录下#并且输出目录是 target/classesjavac -d target/classes src/main/java/org/foo/bar/pkgname/*.java src/main/java/module-info.java登录后复制
这一步将.java文件编译成.class文件,包括module-info.class。
2.下载module-info.class压缩成一个JAR文件。关键所在module-info.class必须位于JAR文件的根目录。
预期的 JAR 文件结构:bar.jar├── module-info.class└── org/ └── foo/ └── bar/ └── pkgname/ ├── X.class ERNIE 3.0 文本理解与文献 56 查看详情 # 设置编译后的类文件在 target/classes 目录下jar --create --file bar.jar -C target/classes .登录后复制
这里的-C target/classes .
三、验证模块
创建了自定义JAR之后,您可以使用jar工具的--describe-module选项来说明:
示例验证命令:jar --describe-module --file bar.jar登录后复制
预期输出示例:bar.jarorg.foo.bar@1.0.0exports org.foo.bar.pkgnamerequires java.base强制登录后复制
(注意:@1.0.0是版本信息,如果JAR清单中没有指定,可能不会。强制表示java.base是隐式依赖。)
如果输出显示了模块显示、导出的包以及java.base的依赖,那么恭喜您,单个的Java模块。
名称四、注意事项与总结模块信息.class的位置:一定要确保module-info.class文件位于JAR的根目录。这是识别一个JAR为模块的关键。
隐式依赖:所有模块都隐式依赖java.base,您因此需要在module-info.java中明确声明需要java.base;。exports与opens:exports用于在编译时通过静态间接访问(即使是非成员),则需要使用opens关键字。对于简单模块,导出通常就足够了。更复杂的模块下载:Java.sql, // java.desktop对java.sql的模块依赖导出my.app.api;}后续复制版本管理:虽然本教程未涉及,但在实际项目中,模块通常会包含版本信息,这可以在module-info.java中通过module org.foo.bar { version "1.0"; ... }来指定,或通过JAR清单文件。
通过遵循上述步骤,您下载Java模块。对于构建可维护、可扩展的现代Java应用程序来说,模块是构建可维护、可扩展的现代Java应用程序的。
以上就是可以登录Java模块Image:更多请关注乐哥常识网其他相关文章! 相关标签: java app 工具 ai java应用程序 封装性 java类 igs Java sql封装接口类大家都在看:Java文件上传:在保存前自定义文件名使用Jackson Dataformat YAML在Java中解析配置Java加密模块中的NoSuchAlgorithmException处理指南
