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

模块目录或模块文件内部名称应相同或不相同

杜翰林
2023-03-14

目录结构

.
├── out
│   └── calc-module
│       ├── com
│       │   └── ngsharma
│       │       └── ocp
│       │           └── Calculator.class
│       └── module-info.class
└── src
    └── calculator
        ├── com
        │   └── ngsharma
        │       └── ocp
        │           └── Calculator.java
        └── module-info.java

成功编译并生成out/calc-module目录。

javac -d out/calc-module src/calculator/module-info.java src/calculator/com/ngsharma/ocp/Calculator.java 

模块-info.java

module calc {}
package com.ngsharma.ocp;

public class Calculator {

    public static int add(int i1, int i2) { return i1 + i2; }

    public static void main(String[] args) {
        System.out.println(add(20,40));
    }
}

共有1个答案

庄弘业
2023-03-14

这(第一个命令)不起作用,因为没有名为calc-module的模块。模块名为calc,在模块-info.java中指定

java -p out --add-modules calc-module com.ngsharma.ocp.Calculator <-- cannot work

这两个中的任何一个都对您有效:

java -p out --add-modules calc com.ngsharma.ocp.Calculator
java -p out --module calc/com.ngsharma.ocp.Calculator

如果包含的模块的目录名与模块名相同,有一种方法可以轻松编译模块。如在这个结构中:

.
+-- src
    +-- calc
        +-- com
        ¦   +-- ngsharma
        ¦       +-- ocp
        ¦           +-- Calculator.java
        +-- module-info.java
javac -d out --module-source-path src -m calc
.
+-- calc
    +-- src
        +-- main
            +-- java
                 +-- com
                 ¦    +-- ngsharma
                 ¦        +-- ocp
                 ¦            +-- Calculator.java
                 +-- module-info.java
javac -d out --module-source-path "./*/src/main/java/" -m calc
 类似资料:
  • 问题内容: 是否可以从多个源文件中构建一个内核模块,这些源文件中的一个与模块具有相同的名称? 例如:我要使用以下源文件构建“ mymodule.ko”: mymodule.c mymodule_func.c 这个makefile不起作用: 谢谢 问题答案: 我找到了解决方案,将源文件放在一个子文件夹中: 生成文件 src / mymodule.c src / mymodule_func.c

  • 问题内容: 假设我有一个包含模块的软件包: 并且这些模块需要引用彼此包含的功能。似乎我的模块遇到了问题,因为有一个同名的标准模块。 例如,在我的模块同时需要我和标准python 模块的情况下,我会遇到麻烦,因为解释器会在程序包内部查找并找到我的模块,然后再遇到标准模块。 有没有办法解决?这是不可以的情况,并且模块名称不能重复使用吗? 有关封装哲学的任何解决方案和意见在这里都将很有用。 问题答案:

  • 问题内容: 在模块路径上是否可以有两个名称完全相同(但内容稍有不同)的模块? 据我所知,Java 9编译器没有对此抱怨。我有2个模块声明如下: 两者都包含包装,但包装内的内容不同。然后在我的主应用程序中,我希望导入此模块: 具有相同名称的两个模块都在我的模块路径上。 我希望在编译模块时,编译器会抱怨同一模块存在两次,但事实并非如此。这是否有效地意味着您可以在模块路径上使用同一jar的2个版本,而J

  • 简介 核心模块 额外模块 共同的返回值 Facts Status 其他的共同返回 ansible 附带了很多可以直接在远端主机或者通过 Playbooks 执行的模块 用户也可以写出属于自己的模块.这些模块可以控制系统的资源 ,像服务,包管理,文件,或执行系统命令. See also Introduction To Ad-Hoc Commands Examples of using modules

  • 问题内容: 我正在尝试在一个项目中使用KárolyLőrentey的B树。但是,我遇到了一个问题,即我不能声明不合格,因为该名称在Foundation的(如在Swift 3中导入的)和的之间发生冲突。 要解决此冲突,通常可以使用该名称,然后使用即可。但是,该模块还包含一个名为的类。如果我写的话,Swift认为我指的是嵌套在该类型中的名为type的类型。 如果不这样做,我将根本无法使用该名称。 如何

  • Python 的 os 模块封装了常见的文件和目录操作,本文只列出部分常用的方法,更多的方法可以查看官方文档。 下面是部分常见的用法: 方法 说明 os.mkdir 创建目录 os.rmdir 删除目录 os.rename 重命名 os.remove 删除文件 os.getcwd 获取当前工作路径 os.walk 遍历目录 os.path.join 连接目录与文件名 os.path.split 分