当我执行此命令时:
jdeps --module-path out --module test它很好,它打印所有的信息。但是当我用-p替换--module-path时,它抛出了一个异常:
jdeps -p out --module test
Exception in thread "main" java.lang.module.FindException: Module test not found但是根据java,我们可以用-p代替--module-path。

那么它为什么抛出异常呢?
发布于 2020-04-20 13:58:54
虽然这些选项对于多个不同的程序通常是一致的,但-p选项就不是这样了。java的Oracle文档中写道:
--模块路径模块路径...或-p模块路径
以分号(;)分隔的目录列表,其中每个目录都是一个模块目录。
但对于jdeps来说,它是:
-p pkg名称、-package pkg名称或-package pkg名称
查找与指定包名匹配的依赖项。您可以为不同的包多次指定此选项。
使用示例
此示例基于名为msg.service.app的模块。它只包含一个包msg.application
在不使用-p的情况下获取模块信息
..snip..>jdeps --module-path target --module msg.service.app
msg.service.app
[file:///C:/..snip../target/msg.service.app/]
requires mandated java.base (@11.0.3)
requires msg.service.api
msg.service.app -> java.base
msg.service.app -> msg.service.api
msg.application -> java.lang java.base
msg.application -> java.util java.base
msg.application -> msg.service msg.service.api
..snip..>获取依赖于包msg.service的信息
..snip..>jdeps --module-path target -p msg.service --module msg.service.app
msg.service.app
[file:///C:/..snip../target/msg.service.app/]
requires mandated java.base (@11.0.3)
requires msg.service.api
msg.service.app -> msg.service.api
msg.application -> msg.service msg.service.api
..snip..>示例中,在java.base上使用它来找出依赖于sun.util.spi包的内容:
..snip..>jdeps --module java.base -p sun.util.spi
java.base
[jrt:/java.base]
java.base -> java.base
java.util -> sun.util.spi java.base
sun.util.locale.provider -> sun.util.spi java.base
..snip..>https://stackoverflow.com/questions/60433694
复制相似问题