我遇到以下情况:
模块地址:
module org.abondar.experimental.address {
exports org.abondar.experimental.address;
}
模块人:
module org.abondar.experimental.person {
requires org.abondar.experimental.address;
exports org.abondar.experimental.person;
}
我正在使用Maven构建它们,所以每个模块都有自己的目标目录和jar文件。
我正在尝试运行具有此类主要类的模块Person
java --module-path Address/target/Address-1.0.jar;Person/target/Person-1.0.jar -m org.abondar.experimental.person/org.abondar.experimental.person.Main
但我得到了许可否认。我如何设置模块路径,包括几个模块?
答案 0 :(得分:4)
在我的一个MacOS项目中尝试这个,我几乎得到了类似的东西 -
zsh: permission denied: .../.m2/repository/test/test/1.0.0-SNAPSHOT/test-1.0.0-SNAPSHOT.jar zsh: permission denied: .../.m2/repository/org/slf4j/slf4j-log4j12/1.7.12/slf4j-log4j12-1.7.12.jar zsh: permission denied: .../.m2/repository/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar
该错误的原因是JAR的路径被指定为command to be executed on MacOS instead。
如果您将模块路径视为MacOS的目录列表(通常可能是Unix),则它与java
tool documentation不匹配。相反,你可以寻求的是
java --help
陈述
--module-path <module path>
... 一个 : 分隔的目录列表,每个目录 是一个模块目录。
在这种情况下,适用于你的命令应为: -
java --module-path Address/target/Address-1.0.jar:Person/target/Person-1.0.jar -m org.abondar.experimental.person/org.abondar.experimental.person.Main