【发布时间】:2015-11-10 15:05:34
【问题描述】:
假设您有一个使用外部用户定义类的简单 Hello world java 程序。你什么时候需要这个.jar? 在编译期间还是在运行时?
在最近的一次采访中被我问到,我都回答了。
后来我想编译我们只需要类定义(即方法名,变量名)等。但是我们可以没有.jar吗?
【问题讨论】:
标签: java
假设您有一个使用外部用户定义类的简单 Hello world java 程序。你什么时候需要这个.jar? 在编译期间还是在运行时?
在最近的一次采访中被我问到,我都回答了。
后来我想编译我们只需要类定义(即方法名,变量名)等。但是我们可以没有.jar吗?
【问题讨论】:
标签: java
在编译期间,您需要类的源文件(并将所有内容一起编译)或构建路径中的 .class 文件(编译文件)。这可以在没有 .jar 文件的情况下实现,只要您的外部 .class 文件也没有其他依赖项。
jar 文件可用于编译时、运行时或两者。这取决于你有什么样的依赖。例如,您在编译期间需要它,而在运行时不需要它,因为您在已经拥有 jar(或其版本)的托管环境(如应用程序服务器)中运行应用程序。例如,如果您的代码执行一些动态类加载(例如java.sql.DriverManager 在加载 SQL 驱动程序类时执行此操作),则您在运行时直接需要它。
当然,最常见的情况是在编译和运行时都需要。
【讨论】:
在运行时,您总是需要 jar。
在编译时,在开发环境(例如 eclipse)中,不需要 jar 文件。还有其他机制(构建浴设置)可用于查找类。 如果项目是使用构建脚本(如 ant)编译的,则需要外部 jar。
【讨论】: