首页 > 解决方案 > 在模块源路径中找不到模块 moduleA,正在尝试编译

问题描述

在回答了这个问题之后,我在 Github 上发布了 java 9 模块教程 + 示例以及如何为未来的用户运行:

我有以下非常简单的结构:

src 
│   module-info.java
│ 
└───moduleA
    └───pack1
            Main.java

module-info.java:

module moduleA {

}

Main.java

package moduleA.pack1;
public class Main{

 public static void main(String[] args){
   System.out.println("Hello Java 11");
 }
}

我正在尝试编译然后运行这个非常简单的模块化 Java 应用程序。

所以从我正在运行的cmd:

编译

javac --module-source-path src -d out -m moduleA

java  --module-path out -m moduleA/pack1.Main

在此处输入图像描述

从 IntelliJ 开始,它就像魅力一样,我不知道它背后有什么魔力。

我在做什么错

标签: javajava-11modularityjava-module

解决方案


--module-source-path通常用于一次编译多个模块。但当然,如果你愿意,你可以用它编译一个模块。但是,您必须将源文件移动到具有模块名称的目录:

src
└───moduleA
    │───module-info.java
    └───moduleA
        └───pack1
            └───Main.java

此外,您应该修复运行模块的命令行:

java --module-path out -m moduleA/moduleA.pack1.Main

推荐阅读