外部jar依赖于java,编译时间与运行时间

时间:2015-08-17 20:53:57

标签: java

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

最近的一次采访中有人问过我,我回答了这两个问题。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在运行期间,您始终需要jar。

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

相关问题