java - jdeps 命令不适用于 -p 属性
问题描述
当我执行这个命令时:
jdeps --module-path out --module test
很好,它会打印所有信息。但是当我用 替换--module-path
时-p
,它会引发异常:
jdeps -p out --module test
Exception in thread "main" java.lang.module.FindException: Module test not found
但是根据java我们可以替换--module-path
为-p
:
那么为什么会抛出异常呢?
解决方案
虽然选项对于多个不同的程序通常是一致的,但-p
选项并非如此。Java的Oracle文档说:
--module-path modulepath... 或 -p modulepath
分号 (;) 分隔的目录列表,其中每个目录都是模块目录。
但是对于jdeps,它是:
-p pkg name、-package pkg name 或 --package pkg name
查找与指定包名称匹配的依赖项。您可以为不同的包多次指定此选项。
使用示例
此示例基于名为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..>
推荐阅读
- python - 为什么 numba.prange 函数不能与元组参数一起正常工作?
- http - 错误 BLOC 状态 [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] 未处理异常:UnimplementedError
- wix - 可以在 Wix 中获取当前用户的帐户 SID 吗?
- python - python re.search() 找不到
- r - case_when 突变整数转换问题
- javascript - 如何将图像转换为 base64 React Native
- html - 将元素添加到展示(部分元素)会扩展元素的高度,我也无法更改新元素的位置
- android - Cloud Datastore Emulator 在 Android 测试站中使用时返回 503 'Service Unavailable'
- html - 使用引导程序 4+ 代码在 WordPress 中自定义页脚
- scala - 在数据帧上分组