我是模块主题的新手,我正在关注如何创建、编译和运行它们的简单示例。
我的项目的文件夹结构如下图所示:
首先我在一个 cmd 窗口中输入这个来编译 module-info.java 和 Task.java 文件:
javac --module-path mods -d feeding feeding/zoo/animal/feeding/Task.java feeding/module-info.java
然后我尝试使用以下代码运行代码:
java --module-path feeding --module zoo.animal.feeding/zoo.animal.feeding.Task
我收到以下错误:
Error occurred during initialization of boot layer
java.lang.module.FindException: Error reading module: feeding
Caused by: java.lang.module.InvalidModuleDescriptorException: Task.class found in top-level directory (unnamed package not allowed in module)
有人可以解决这个问题吗?另外,--module-path
选项在java
andjavac
命令中的作用是什么?
这是类和模块描述符的代码:
module zoo.animal.feeding {
}
public class Task {
public static void main(String... args) {
System.out.println("All fed!");
}
}