假设您有一个简单的 Hello world java 程序,它使用外部用户定义的类。您什么时候需要这个 .jar? 在编译时还是在运行时?
在最近的一次采访中我被问到了这个问题,我都回答了。
后来我想,编译时我们只需要类定义(即方法名、变量名)等。但是我们可以在没有.jar的情况下使用它吗?
最佳答案
在编译期间,您需要类的源文件(并将所有内容一起编译)或构建路径中的 .class 文件(编译后的文件)。只要您的外部 .class 文件也没有其他依赖项,就可以在没有 .jar 文件的情况下实现这一点。
jar 文件可用于编译时、运行时或两者。这取决于你有什么样的依赖。例如,您在编译期间需要它,而在运行时不需要它,因为您在已经具有 jar(或其版本)的托管环境(如应用程序服务器)中运行应用程序。例如,如果您的代码执行一些动态类加载(例如 java.sql.DriverManager
在加载 SQL 驱动程序类时执行此操作),则您在运行时直接需要它。
当然,最常见的情况是编译和运行时都需要。
关于java - java中的外部jar依赖,编译时与运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059515/