jar 文件是否不包含导入包和 类?

Does jar file not contain imported packages and classes?

我尝试了一个简单的A包B包示例。

包结构是这样的-

---A
     |---a.class
---B
     |---b.class

a.class 导入包 B 和 class b.

然后我用下面的命令创建了一个jar文件-

jar -cvf a.jar A

然后我使用“jar -tf a.jar”命令显示了jar文件的内容,我看到了以下内容 -

META-INF/
META-INF/MANIFEST.MF
A/
A/a.class

为什么在 A/a.class 导入时 B/b.class 不是 jar 文件的一部分?

还有 A/a.class 运行 如何正确地将 B/b.class 作为其中的一部分?

java -cp ./A.jar A.a

import 语句允许您通过短名称引用另一个包中的 class;它什么都不做。 imports 甚至没有转移到已编译的 .class 文件中;所有引用都替换为完全限定名称。