我正在尝试使用Java Dependency Analysis Tool (jdeps)。首先,我尝试不使用任何参数来做到这一点:

jdeps myJar.jar

它列出了它使用的依赖项。到目前为止,一切都很好。
org.example (myJar.jar)
   -> java.io
   -> java.lang
   -> java.text
   -> java.util
   [...]

但是,使用jdeps的最大原因是要检测对Java 9中无法访问的程序包(例如sun.*程序包)的依赖性。因此,我尝试使用-jdkinternals标志,该标志检查这些不兼容性。因此,我的命令是:
jdeps -jdkinternals myJar.jar

但是,运行此命令时没有输出。这是否意味着它无法运行?我想念什么?

最佳答案

这意味着jar不使用任何JDK内部软件包

运行jdeps -jdkinternals并且没有输出意味着jdeps找不到任何JDK内部软件包。您可以通过运行不带jdeps-jdkinternals并查看所有依赖包列表来验证这一点。它们都不是内部的。

打印“发现没有JDK内部依赖项”以防止发生此类混淆可能会更好。尽管如此,要知道没有输出意味着没有什么可担心的,所以请庆祝一个事实,即使用Java 9时不会有任何问题(无论如何,出于这个原因)。

09-28 06:50