回答了这个问题i published java 9 modules tutorials + examples on Github,以及如何为将来的用户运行:
我具有以下非常简单的结构:
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来看,它就像魅力一样工作,我不知道它背后的魔力是什么。
我在做什么错?
答案 0 :(得分:2)
--module-source-path
通常用于一次编译多个模块。但是,当然,您可以根据需要编译单个模块。但是,您必须将源文件移动到模块名称为目录的位置:
src
└───moduleA
│───module-info.java
└───moduleA
└───pack1
└───Main.java
此外,您应该修复运行模块的命令行:
java --module-path out -m moduleA/moduleA.pack1.Main
答案 1 :(得分:2)
我面临的确切错误..(我正在遵循相同的示例) 只要确保windows中针对“module-info”的文件类型是“JAVA文件”
我确实通过记事本++进行了编辑并选择了 java lang ,将类型显式更改为 java.it 对我有用,我没有做一些评论中提到的额外工作。 我很确定你也一定是这种情况。
如果 javac 找不到 module-info.java 就会出现这个错误,所以那个文件应该有问题(在我的例子中是文件类型)
PS:请提供学分/作者信息(Durgasoft),因为您已经从那里复制了注释信息(在 git hub 中)。
答案 2 :(得分:1)