7

我有以下情况:

模块地址:

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

但我得到的许可被拒绝。如何设置包含多个模块的模块路径?

4

1 回答 1

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 的路径被指定为要在 MacOS 上执行的命令

java如果您将模块路径视为 MacOS 的目录列表(通常可能是 Unix),则它与工具文档不匹配。相反,您可以寻求的是

java --help

哪个国家

--module-path <module path>... A 分隔的目录列表,每个目录都是一个模块目录。

在这种情况下,对你有用的命令应该是:-

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
于 2017-12-21T01:28:11.967 回答