首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用第三方库(jar文件)运行Java Module类(java 9 jigsaw项目)?

在Java 9及以上版本中,引入了模块化系统(Jigsaw),允许开发者将代码组织为模块。当使用第三方库(jar文件)运行Java模块类时,需要遵循以下步骤:

  1. 创建一个模块描述文件(module-info.java):在你的Java模块中,创建一个名为module-info.java的文件。该文件位于模块的根目录下,用于描述模块的信息和依赖关系。
  2. 在模块描述文件中声明依赖:使用requires关键字声明你的模块对第三方库模块的依赖。例如,如果你的模块依赖于一个名为"library"的第三方库,可以在module-info.java文件中添加以下代码:
代码语言:txt
复制
module your.module.name {
    requires library;
}
  1. 导入第三方库的jar文件:将第三方库的jar文件放置在你的项目中,通常可以将其放置在项目的lib目录下。
  2. 编译和运行模块:使用Java编译器(javac)编译你的模块,并使用Java虚拟机(java)运行它。在编译和运行时,需要通过命令行参数--module-path指定模块路径,以及--module指定要运行的模块。例如:
代码语言:txt
复制
javac --module-path <path_to_library.jar> -d <output_directory> <module_sources>
java --module-path <path_to_library.jar>:<output_directory> --module <module_name>/<fully_qualified_main_class>

其中,<path_to_library.jar>是第三方库的jar文件路径,<output_directory>是编译输出目录,<module_sources>是模块源代码文件,<module_name>是你的模块名称,<fully_qualified_main_class>是包含main方法的类的完全限定名。

需要注意的是,以上步骤是在命令行中进行的,也可以使用构建工具(如Maven、Gradle)来简化这些步骤。

对于第三方库的具体使用方法和API文档,可以参考该库的官方文档或相关资源。腾讯云并没有提供特定的产品或链接来推荐第三方库的使用,建议根据具体需求和场景选择适合的第三方库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JDK_1.9API中文版,java开发者必备

jdk1.9api简介基本简介   Java 9 的定义功能是一套全新的模块系统。当代码越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。...最新特性   1、Jigsaw 项目:模块化JDK源码   Jigsaw项目即JEP201是为了模块化Java代码,并将JRE分成相互协作的组件。...这个项目原计划随Java 8发布,但因为推迟,所以被放到了Java 9中。...Jigsaw项目一旦完成,将允许开发者根据项目的需要自定义组件,从而减少rt.jar的大小;还可以做到使Java能够更加容易的应用到小型计算设备(如网络设备)中,同时也能够使得开发者更加容易地构建和维护这些...JSON API将放在java.util包里一起发布,这样,开发者就可以直接使用JDK而无需再引入第三方JSON工具包了。

2.1K10

原 荐 Java9 Module解惑

Java SE 9Jigsaw项目 接下来我们将对Jigsaw项目--> Java SE 9Java模块系统中的一些新特性,做一个简单的介绍。...JavaSE9中的Jigsaw项目来源与Oracle项目中一个非常出名的大项目。其实在Java7的版本开始就已经启动。...Jar文件,像rt.jarjar文件太大的以至于不能使用在小设备和应用中。 因为JDK是太大的,我们的应用或设备不能支持更好的平台....Java9模块系统特性 Java SE 9模块系统提供以下的便利性: 在Java SE 9中分离了JDK, JRE,jar等为更小的模。因此我们可以方便的使用任何我们想要的模块。...JRE被分离到一个分开的文件夹。 但是JDK 9软件包含一个新的文件夹“jmods”。它包含一套Java 9模块,如下所示。 在JDK 9,没有rt.jar和tools.jar文件。 ?

1.3K40
  • Java9新特性——module模块系统

    modular-模块系统 java9的模块化,从一个独立的开源项目而来,名为Jigsaw。...项目官网:http://openjdk.java.net/projects/jigsaw/ 为什么要使用模块化 java开发者都知道,使用java开发应用程序都会遇到一个问题,Jar hell,他就像windows...$ java -p lib -m hello Jigsaw的设计目标 让开发者构建和维护一个大型的或应用程序更容易; 提高javaSE平台及JDK实现的安全性和可维护性; 提升应用的性能; 在javase...strong encapsulation 强封装 modulejar的区别 jar 实际上就是一个文件的集合,就像一个zip文档;而module是一个规范的java组件,除了jar还有更多的工具支持...目录结构的变化,以前一个jar项目是: project ├── bin ├── classes └── src 而module项目则是: project ├── module1 │ ├── classes

    3.1K20

    2018-06-14 Spring Framework Overview 5.0Spring Framework Overview

    在大型企业中,应用程序通常存在很长时间,并且必须在升级周期超出开发人员控制的JDK和应用程序服务器上运行。 其他人可能会将嵌入式服务器作为单个jar运行,可能在云环境中运行。...A note about modules: Spring’s framework jars allow for deployment to JDK 9’s module path ("Jigsaw")....关于模块的注意事项:Spring的框架jar允许部署到JDK 9的模块路径(“Jigsaw”)。...为了在启用Jigsaw的应用程序中使用,Spring Framework 5 jars带有“Automatic-Module-Name”清单条目,它定义了独立于jar伪影的稳定语言级别模块名称(“spring.core...Spring支持精心挑选的一系列JDK版本和第三方,以方便维护依赖于Spring的应用程序和。 Care about API design.

    66270

    Java 9正式发布:这次Jigsaw终于来了

    Jigsaw 首先,谈到 Java 9 大家往往第一个想到的就是 Jigsaw 项目,这是一个雄心勃勃的项目。...大家知道,Java 已经发展超过 20 年,Java 和相关生态在不断丰富的同时也越来越暴露出一些问题,比如 Java 运行环境的膨胀和臃肿,各种类和工具在提供强大功能的同时,也越来越复杂,不同版本的交叉依赖导致...Jar Hell 等让人头疼的问题,这些都阻碍了 Java 开发和运行效率的提升。...在 JDK 9 中, AOT作为实验特性被引入进来,开发者可以利用新的 jaotc 工具将重点代码转换成类似一样的文件,这样会大大降低启动开销。...首先,就是如何更加快速、敏捷地进行创新。在 Java 9 的开发过程中, 非常突出的一点就是,由于 Jigsaw 项目的延期,导致 Java 9 的发布一再推迟,这带来了很多负面影响。

    1.2K50

    java9 模块化系统小试

    编译期检查 JPMS 要求每个定义好的模块下面放置 module-info.java 描述文件Module Descriptor),用于描述本模块依赖(requires)外部哪些模块,以及对外暴露(exports...项目实验 基于上述的基础知识,我在原来托管在 github 上的开源项目 underscore.string.java 上另起了一个 jigsaw 的分支 underscore.string.java-jigsaw...基本步骤 src/main/java/ 目录下新建 module-info.java 引入 gradle plugin org.gradle.java.experimental-jigsaw 修改...这个模块会导出包 com.lambeta,事实上,我的项目只有一个包。另外,它需要依赖 guava 模块。 2. gradle 插件 gradle 如何支持 java9 的模块系统,这篇文章已经细说。...gradle 的多模块项目一起使用,效果最佳。

    77630

    Kotlin 与 Java 8 的重要新特性以及 Java 9、10 的发展规划Java 9 新特性 极简介绍Java 10X 的发展规划Kotlin《Kotlin极简教程》正式上架:

    此外,路径本身也存在问题: 你怎么知晓所有需要的 JAR 都已经有了, 或者是不是会有重复的项呢? 模块系统把这俩个问题都给解决了。 模块化的 JAR 文件都包含一个额外的模块描述器。...如下是一个模块描述器的示例,存在于 “module-info.java文件中: module blog { exports com.pluralsight.blog; requires...9. 多版本兼容 JAR 我们最后要来着重介绍的这个特性对于的维护者而言是个特别好的消息。当一个新版本的 Java 出现的时候,你的用户要花费数年时间才会切换到这个新的版本。...幸运的是,多版本兼容 JAR 功能能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本: multirelease.jar ├── META-INF │ └── versions...同时,在早期的 Java 诸版本中使用这个 JAR 也是能运行的,因为较老版本的 Java 只会看到顶层的这个 Helper 。 10.

    40020

    深度解析Java 9核心新特性

    模块化系统(Jigsaw项目Java 9引入了模块化系统,也被称为Jigsaw项目(JEP 200)。...多版本兼容 JAR(JEP 238) Java 9引入了多版本兼容JAR文件的概念,这允许开发者在单个JAR文件中包含针对不同Java版本的和资源。...这使得和框架的维护者能够更容易地支持多个Java版本,而无需为不同版本创建和维护单独的JAR文件。 多版本兼容JAR允许在单个JAR中包含针对不同Java版本的文件。.../9 -source 9 -target 9 MyClass9.java # 编译Java 9版本的 jar cfm multi-release.jar manifest.mf -C classes...jlink主要通过命令行使用,用于创建一个自定义的Java运行时映像: jlink --module-path /path/to/jmods --add-modules java.se --output

    17200

    java9系列(三)模块系统精要

    automatic modules它是显式声明的named module路径下jar包的桥接,它从一个没有模块声明的jar包中隐式创建,模块名取自MANIFEST.MF文件中的Automatic-Module-Name...比较适用于框架或,比如jdbc驱动,编译时仅仅需要api,运行时添加所需的指定,如果不用static,则编译时就需要把所有支持的jdbc驱动都声明依赖,这样比较费劲。...func1; opens func2 to func3; } 在模块声明中允许(指定模块)在运行使用反射访问 open module open module编译时仅限于指定的导出模块可用,但是在...注意这里不需要exports这个实现 查看模块描述 ➜ ~ java -d java.logging java.logging@9 exports java.util.logging requires...doc Modular Programming in Java 9: Build large scale applications using Java modularity and Project Jigsaw

    70420

    Java9来了,快来了解下JPMS基础吧!

    JPMS ,是一个全新的模块系统,作为项目Jigsaw来开发,目的就是要提高java编码的抽象级别。...然而,愿望是美好的,项目目标并不总是能够得到满足。 什么是JPMS Module? JPMS是对Java,语言和运行时的更改。...一个模块通常只是一个jar文件,在文件的根目录下有一个module-info.class文件,就是一个模块化jar文件。该文件是从源代码中的module-info.java文件创建的。...使用模块化jar文件涉及将jar文件添加到模块路径(modulepath )而不是路径(classpath)。...所有使用module-info文件仅适用于在模块路径上使用模块化jar。为了兼容性,路径中的所有代码都打包成一个特殊的未命名模块,没有隐藏的包和对整个JDK的完全访问。

    2.8K80

    Salesforce 如何用一年的时间大规模迁移到 OpenJDK 11

    然而,作为 Jigsaw 计划的一部分,Java 9 带来了一个影响加载的重大变更。...预检入的重复查找器(Duplicate-Class-Finder,DCF)依赖于 Procyon 的 Java 反编译器,该反编译器使用给定的 FQCN 搜索和反编译,能在路径上搜索 JAR 文件列表...Multi-release JAR 是在 Java 9 中引入的一个新特性:它扩展了 JAR 文件的格式,允许同一 Java 资源的多个版本共存于同一 JAR 文件中,其中该类的每个版本可以是以不同方式实现并根据不同...支持多版本的加载器会从多版本 JAR 文件中自动加载适当的(即,那些与 Java 运行时 JDK 版本相匹配的)。...我们的 Servlet 容器和 OSGi 加载器都支持多版本 JAR 文件,并且随着 JDK 11 及以上版本的广泛使用,我们预计将有越来越多的第三方依赖项会使用这种格式打包。

    75520

    这些Java9新特性,你用过吗?

    客户端API 模块化系统:Jigsaw->Modularity 解决越来越臃肿的java运行环境,主要目的在于减少内存的开销,只须必要模块,而非全部jdk模块。...代码示例 从代码结构上来看,在包名同级下多了一个module-info.java文件 ?...---- 当外部文件需要使用这个的时候,通过requires关键字 + 项目名就可以导入该项目名下暴露的 ?...小总结 模块化系统是基于jar包和之间存在的,目的在于尽可能的减少jar中多余的加载,保证整体项目运行时的效率,对于项目运行肯定有一定的积极意义。...而之前的 Java 版本要想执行代码,必须创建文件、声明、提供测试方法方可实现。 使用方法 jdk的bin目录下,有一个jshell文件,打开进入 ?

    64630

    【大牛经验】Java9的新特性

    简而言之,所有的模块将需要在所谓的module-info.java文件中进行描述,这个文件是位于Java代码结构的顶层。 ?...需要更多深入的例子可以查看OpenJDK中项目Jigsaw:模块化系统快速入门(http://openjdk.java.net/projects/jigsaw/quick-start)。...JShell–Java 9 REPL 你可能问:“REPL是什么”?REPL是一种快速运行语句的命令行工具。...但是Java 7中钻石操作符不允许在匿名使用。但在Java 9中改善了这一情况,允许钻石操作符在匿名使用。下面的例子只有在Java 9中才能通过编译。 ?...Java SE 9 中也提供了扫描jar文件的工具jdeprscan。这款工具也可以扫描一个聚合,这个使用Java SE中的已废弃的API元素。

    55030

    【大牛经验】Java9的新特性

    我们将快速的,着重的浏览其中的几个新特性: 模块化系统–Jigsaw 项目 模块化是一个很通用的概念。...简而言之,所有的模块将需要在所谓的module-info.java文件中进行描述,这个文件是位于Java代码结构的顶层。...需要更多深入的例子可以查看OpenJDK中项目Jigsaw:模块化系统快速入门(http://openjdk.java.net/projects/jigsaw/quick-start)。...但是Java 7中钻石操作符不允许在匿名使用。但在Java 9中改善了这一情况,允许钻石操作符在匿名使用。下面的例子只有在Java 9中才能通过编译。...Java SE 9 中也提供了扫描jar文件的工具jdeprscan。这款工具也可以扫描一个聚合,这个使用Java SE中的已废弃的API元素。

    89780

    Java 9的14个新特性总结

    我们将快速的,着重的浏览其中的几个新特性: 模块化系统–Jigsaw 项目 模块化是一个很通用的概念。...简而言之,所有的模块将需要在所谓的module-info.java文件中进行描述,这个文件是位于Java代码结构的顶层。...需要更多深入的例子可以查看OpenJDK中项目Jigsaw:模块化系统快速入门(http://openjdk.java.net/projects/jigsaw/quick-start)。...但是Java 7中钻石操作符不允许在匿名使用。但在Java 9中改善了这一情况,允许钻石操作符在匿名使用。下面的例子只有在Java 9中才能通过编译。...Java SE 9 中也提供了扫描jar文件的工具jdeprscan。这款工具也可以扫描一个聚合,这个使用Java SE中的已废弃的API元素。

    88550

    如何解决升级IntelliJ IDEA后打开项目出错:“module java.base does not open java.lang to unnamed module @1a75e76a“

    如何解决升级IntelliJ IDEA后打开项目出错:“module java.base does not open java.lang to unnamed module @1a75e76a” ️ 摘要...Java模块系统简介 自Java 9起,引入了模块系统(Project Jigsaw),它改变了Java代码的组织和访问权限方式。 2....使用Maven/Gradle配置 如果项目使用Maven或Gradle,确保依赖和插件是最新的,并且支持Java模块特性。...-add-opens java.base/java.lang=ALL-UNNAMED -jar myapp.jar 常见问题解答 Q1: 如果这个问题持续存在怎么办?...对于开发者来说,了解如何调整和配置IDE及运行环境是适应这些变化的关键。通过不断学习和实验,可以有效地解决升级或迁移过程中可能遇到的问题。

    1.8K20

    JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK9特性讲解】

    平台上,它包含系统的运行时动态链接 jre/lib包含用户可编辑的配置文件,如properties和.policy文件,包含几个jar文件,rt.jar文件包含运行时的java和资源文件 目录介绍...其他变化 6.1 模块化   谈到Java9大家往往第一个想到的就是Jigsaw项目(后改名为Modularity)。...不同版本的交叉依赖导致让人头疼的问题,这些都阻碍了Java 开发和运行效率的提升。 很难真正地对代码进行封装,而系统并没有对不同部分(也就是JAR文件)之间的依赖关系有个明确的概念。...案例演示: 创建一个普通的Java项目 然后在这个项目下准备两个模块。 然后在JDK19Module1中添加一些就可以了 然后我们需要考虑如何在JDK19module2中使用这个?...或者说是使用模块1中的,第一步,在两个模块的src下创建各自的module-info.java 创建完毕的结构为: 在JDK19Module1的module-info.java文件中。

    1.7K40
    领券