【问题标题】:External jar dependcy in java, compile time vs run timejava中的外部jar依赖,编译时间与运行时
【发布时间】:2015-11-10 15:05:34
【问题描述】:

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

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

后来我想编译我们只需要类定义(即方法名,变量名)等。但是我们可以没有.jar吗?

【问题讨论】:

    标签: java


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在运行时,您总是需要 jar。

      在编译时,在开发环境(例如 eclipse)中,不需要 jar 文件。还有其他机制(构建浴设置)可用于查找类。 如果项目是使用构建脚本(如 ant)编译的,则需要外部 jar。

      【讨论】:

        猜你喜欢
        • 2011-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-24
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 2011-02-24
        相关资源
        最近更新 更多