当前位置: 首页 > 知识库问答 >
问题:

如何在Java9模块中使用第三方库?

李锦
2023-03-14

我有一些使用第三方库的java9模块,它不是java9模块,只是一个简单的实用程序jar。

但是,编译器抱怨它找不到来自我的实用程序的包。

我应该做什么在module-info.java启用使用我的第三方库?

共有2个答案

欧阳安晏
2023-03-14

简单地说,在您的模块中使用第三方jar(例如下面的log4j-api-2.9.1.jar):-

>

  • 执行jar工具的描述符命令

     jar --file=/path/to/your/jar/log4j-api-2.9.1.jar --describe-module
    

    这将为您提供类似的输出

    找不到模块描述符。派生自动模块。log4j。api@2.9.1自动的

    在模块描述符文件中,将所需的声明为该模块名称:-

     module your.module {
         requires log4j.api;
     }
    

    就这样。

  • 牛迪
    2023-03-14

    您可以将库用作自动模块。自动模块是没有模块描述符的模块(即module info.class)。

    但是您需要指定什么名称来引用自动模块呢?自动模块的名称是从JAR名称派生的(除非这个JAR包含一个自动模块名称属性)。完整的规则相当长(参见Javadoc的ModuleFinder.of),所以为了简单起见,您只需将版本从名称中删除,然后用点替换所有非字母数字字符(.)。

    例如,如果您想使用foo-bar-1.2.3-SNAPSHOT. jar,您需要在module-info.java中添加以下行:

    module <name> {
        requires foo.bar;
    }
    
     类似资料:
    • 问题内容: 我有一些使用第三方库的java9模块,它不是Java9模块,只是一个简单的实用jar。 但是,编译器抱怨它无法从我的实用程序中找到软件包。 我应该怎么做才能使用我的第三方库? 问题答案: 您可以将您的库用作 自动模块 。自动模块是没有模块描述符(即)的模块。 但是,您需要指定什么名称来引用自动模块?自动模块的名称是从JAR名称派生的(除非此JAR包含属性)。完整的规则很长(请参阅Jav

    • 问题内容: 我的测试目标中当前已导入: 并在我的相同测试目标中使用它: 在测试中,我正在做以下模拟尖锐函数的操作: 但我得到: 有没有一种方法可以使用带有Jest的功能模拟所有Sharp模块功能? 问题答案: 您需要像这样模拟它: 首先,您需要返回function而不是对象,因为您需要调用。该函数调用将返回带有键的对象,该键包含另一个函数,依此类推。 要测试每个功能,您需要为每个功能创建一个间谍。

    • 本文向大家介绍如何安装第三方模块?以及用过哪些第三方模块?相关面试题,主要包含被问及如何安装第三方模块?以及用过哪些第三方模块?时的应答技巧和注意事项,需要的朋友参考一下   用过的第三方模块:requests,pymysql,DbUtils,SQLAlchemy等  

    • 在前面,我们介绍了一个优秀的第三方库 — requests,本章再介绍两个第三方库: celery click 其中: celery 是一个强大的分布式任务队列,通常用于实现异步任务; click 是快速创建命令行的神器;

    • 除了内建的模块外,Python还有大量的第三方模块。 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用easy_install或者pip安装。 本章介绍常用的第三方模块。

    • 除了内建的模块外,Python还有大量的第三方模块。 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip安装。 此外,在安装第三方模块一节中,我们强烈推荐安装Anaconda,安装后,数十个常用的第三方模块就已经就绪,不用pip手动安装。 本章介绍常用的第三方模块。