java - java中的外部jar依赖,编译时与运行时

标签 java

假设您有一个简单的 Hello world java 程序,它使用外部用户定义的类。您什么时候需要这个 .jar? 在编译时还是在运行时?

在最近的一次采访中我被问到了这个问题,我都回答了​​。

后来我想,编译时我们只需要类定义(即方法名、变量名)等。但是我们可以在没有.jar的情况下使用它吗?

最佳答案

在编译期间,您需要类的源文件(并将所有内容一起编译)或构建路径中的 .class 文件(编译后的文件)。只要您的外部 .class 文件也没有其他依赖项,就可以在没有 .jar 文件的情况下实现这一点。
jar 文件可用于编译时、运行时或两者。这取决于你有什么样的依赖。例如,您在编译期间需要它,而在运行时不需要它,因为您在已经具有 jar(或其版本)的托管环境(如应用程序服务器)中运行应用程序。例如,如果您的代码执行一些动态类加载(例如 java.sql.DriverManager 在加载 SQL 驱动程序类时执行此操作),则您在运行时直接需要它。
当然,最常见的情况是编译和运行时都需要。

关于java - java中的外部jar依赖,编译时与运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059515/

相关文章:

java - Android 蓝牙应用程序在启动时崩溃

java - 将 "invalid"值 'Residential' 转换为数据类型 int 时转换失败

java - 如何为JUNIT开源做贡献

java - 使用多线程jdbc数据检索

java - 当我使用多线程进行更新操作时,数据库端会发生什么?

java - Jsoup简单的HTML标签分割

java - 如何使 Eclipse 中的 Quartz Scheduler 工作?

java - StarActivityForResult() 导致返回 Intent 数据时强制关闭

java - JComboBox 填充枚举变量值

java - 泛型、删除和字节码