当Classpath缺少一些类时,项目怎么可能运行良好呢?

时间:2017-04-14 13:07:42

标签: java maven intellij-idea classloader

有趣的是发现我的项目中不存在MultiTenantConnectionProvider.java,但我的项目可以构建并运行良好。

screenshot of missing class

我使用Intellij Idea 2016.2。由于课程包含在mysql-connector-java-5.1.31.jar中。所以我尝试连接到mysql db并查询一些数据以测试它是否运行良好。事实证明,缺少课程并不会影响项目运行良好。这似乎不合逻辑,不是吗?

data can be quired out

1 个答案:

答案 0 :(得分:0)

完全没有。大多数JVM实现都执行 lazy 类加载。这意味着:类加载器不会加载类,直到真正需要;例如,当其他一些代码实例化这样一个类的对象时。

换句话说:当你的应用程序没有抛出ClassNotFoundException时。一个NoClassDefFoundError ......结论是:执行的代码路径不需要加载一个类。

喜欢在:你可能会注意到你在派对上丢失钥匙,直到你回到家并尝试打开前门。

换句话说:如果您的程序在没有该类的情况下构建和运行,则类的使用不多。