只是在Buildpath
中查看我的Classpath
项目的Java
和Eclipse
。我注意到项目的buildpath中包含的所有jar都会自动包含其classpath。
为什么Eclipse这么做是有道理的。我的意思是,如果我需要在代码中实例化一个外部类,那么我需要在buildpath中将这些类编译为代码。而且在运行时,我也需要将那些完全相同的类加载到jvm中。
然后,看起来classpath中需要buildpath中包含的所有类。尽管我无法想到项目的类路径将不同于其buildpath的情况。
以上理解正确吗?您能给我一个这样的情况吗,其中classpath将具有比buildpath中更多的类?
最佳答案
在许多情况下,仅在运行时需要类,而在编译时则不需要。 JDBC驱动程序是最典型的驱动程序之一。代码是根据JDBC API编写/编译的,但是在运行时,驱动程序类必须在类路径上可用。还有许多其他示例,尤其是当您进入具有标准API和可以在运行时“注入”的不同实现的各种框架时。