Java 当一个项目的类路径缺少一些在其中使用的类时,它怎么可能运行良好呢?
有趣的是,我的项目中不存在Java 当一个项目的类路径缺少一些在其中使用的类时,它怎么可能运行良好呢?,java,maven,intellij-idea,classloader,Java,Maven,Intellij Idea,Classloader,有趣的是,我的项目中不存在MultiTenantConnectionProvider.java,但我的项目可以通过maven构建并运行良好 我使用Intellij Idea 2016.2。因为类被打包在mysql-connector-java-5.1.31.jar中。所以我尝试连接到mysql数据库并查询出一些数据来测试它是否工作正常。事实证明,类的缺失并不影响项目的良好运行。这似乎不合逻辑,不是吗 一点也不。大多数JVM实现都进行类加载。这意味着:直到类装入器真正需要它时,它才被装入;例如,
MultiTenantConnectionProvider.java
,但我的项目可以通过maven构建并运行良好
我使用Intellij Idea 2016.2。因为类被打包在mysql-connector-java-5.1.31.jar
中。所以我尝试连接到mysql数据库并查询出一些数据来测试它是否工作正常。事实证明,类的缺失并不影响项目的良好运行。这似乎不合逻辑,不是吗
一点也不。大多数JVM实现都进行类加载。这意味着:直到类装入器真正需要它时,它才被装入;例如,当其他一些代码实例化这样一个类的对象时 换句话说:当应用程序没有抛出ClassNotFoundException响应时。一个NoClassDefFoundError。。。结论是:执行的代码路径不需要加载一个类 比如:你可能会注意到你在聚会上丢了钥匙,直到你回家试图打开前门
换句话说:如果您的程序在没有该类的情况下构建和运行,那么该类就不会被大量使用。一点也不会。大多数JVM实现都进行类加载。这意味着:直到类装入器真正需要它时,它才被装入;例如,当其他一些代码实例化这样一个类的对象时 换句话说:当应用程序没有抛出ClassNotFoundException响应时。一个NoClassDefFoundError。。。结论是:执行的代码路径不需要加载一个类 比如:你可能会注意到你在聚会上丢了钥匙,直到你回家试图打开前门
换句话说:如果您的程序在没有该类的情况下构建和运行,那么该类就不会被大量使用。感谢您的接受!谢谢你的接受!