喜欢标题。
示例:我有3个类的程序: Server,Client,Main。
Main有2个导入 - 服务器和客户端。 根据我启动程序(客户端或服务器)的模式,Main类将使用给定类的方法。
现在让我们说我从.jar中删除Server.class - 如果我在客户端模式下运行它会导致程序崩溃吗?我没有使用已删除类中的任何方法(它被if(...)阻止,只有它的导入和未使用的引用被ifc阻止。
答案 0 :(得分:3)
如果程序在"客户端模式"中运行时永远不会到达使用服务器类的部分,程序通常会正常运行而不会崩溃,因为JVM只会在类是时加载类文件使用
但是,只要在任何其他条件下引用服务器类,程序就会因NoClassDefFoundError
而崩溃,因此该解决方案会带来风险。