gpt4 book ai didi

java - 如何知道 Java 应用程序使用的所有类/jar 文件

转载 作者:太空宇宙 更新时间:2023-11-04 14:59:28 25 4
gpt4 key购买 nike

我有 C/C++ 背景,并且有 Java 方面的工作经验。我现在正在转向 Java 语言(因为我觉得我应该很久以前就这样做了)。在C/C++中,如果应用程序已经链接到外部共享库(.so、.a、.sl),我们可以使用'ld'命令知道这种依赖关系。

我的问题是,.jar 是否有类似的用途?就像如果 java 应用程序依赖于 1.jar、2.jar 等,这些 jar 文件是否会永远“链接”到 Java 应用程序(导致更大的文件,例如 .a 更喜欢 c/c++ 应用程序,从而产生更大的可执行文件)或动态加载(与 .so/.sl 相同,动态加载,而不是主 c/c++ 应用程序的一部分)。

另外,是否可以列出 java 应用程序所依赖的所有 jar 文件?

在java中,应用程序默认导入java.lang.*包,这个包是否驻留在jar文件中?如果是,哪些 jar 文件对应于该包?

非常感谢!

维宾

最佳答案

事情是否硬连线到您的应用程序中?当然不。作为开发人员和部署人员,您有责任跟踪应用程序需要哪些 jar 文件。

默认库(如 JDK API 文档中所定义)包含在作为 JVM 安装的一部分部署的 jar 文件中,因此您永远不必传送这些文件。
同样,对于 Java EE,服务器需要提供一组标准,该标准集在 Java EE API 文档中定义,因此您也不需要发布该标准集。
将这些类视为编写 C 应用程序时操作系统附带的动态库。你不运送这些,你依赖它们的存在。如果不是,您会收到一条错误消息,指出操作系统(如果是 Java,则为 JVM)版本错误。
有一些工具可以从 Java 类中提取有关导入的信息。有了这些信息,就有可能获取一个充满 jar 文件的目录,并编写软件来找出您需要哪些文件,但您实际上应该在开始编写时跟踪它。

关于java - 如何知道 Java 应用程序使用的所有类/jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22783023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com