编译后导入会导致崩溃/错误吗?

时间:2014-11-30 17:36:22

标签: java import

喜欢标题。

示例:我有3个类的程序: Server,Client,Main。

Main有2个导入 - 服务器和客户端。 根据我启动程序(客户端或服务器)的模式,Main类将使用给定类的方法。

现在让我们说我从.jar中删除Server.class - 如果我在客户端模式下运行它会导致程序崩溃吗?我没有使用已删除类中的任何方法(它被if(...)阻止,只有它的导入和未使用的引用被ifc阻止。

1 个答案:

答案 0 :(得分:3)

如果程序在"客户端模式"中运行时永远不会到达使用服务器类的部分,程序通常会正常运行而不会崩溃,因为JVM只会在类是时加载类文件使用

但是,只要在任何其他条件下引用服务器类,程序就会因NoClassDefFoundError而崩溃,因此该解决方案会带来风险。