【发布时间】:2020-06-27 07:54:30
【问题描述】:
目录结构
.
├── 出
│ └── 计算模块
│ ├── com
│ │ └── ngsharma
│ │ └── ocp
│ │ └── Calculator.class
│ └── module-info.class
└── src
└── 计算器
├── com
│ └── ngsharma
│ └── ocp
│ └── Calculator.java
└── 模块信息.java
编译成功并生成out/calc-module目录。
javac -d out/calc-module src/calculator/module-info.java src/calculator/com/ngsharma/ocp/Calculator.java
模块信息.java
模块计算{}
Calculator.java
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. java -p out --add-modules calc-module com.ngsharma.ocp.Calculator
当我使用这个命令时,它抛出异常 FindException: Module calc-module not found。
根据1.模块内部名称和模块目录名称应该相同,其他抛出FindException。
2 java -p out --add-modules calc com.ngsharma.ocp.Calculator
但在这种情况下,我没有使用模块目录名,我只使用 module-info.java 内部文件名,并成功运行。如何..?为什么..?
模块文件名和模块文件夹名要一致,否则不编译运行是正确的。请任何人建议我并纠正我的错误。(模块中的新手)。
【问题讨论】:
-
“根据java Doc模块文件名和模块文件夹名应该相同”,请分享参考供您参考。
-
“根据”什么?这句话没有意义。除了那个“模块文件名”总是
module-info.java(和module-info.class)。
标签: java java-9 java-module module-info module-path