确保JAR/classpath中引用的所有Java类都存在于JAR/classpath中

确保JAR/classpath中引用的所有Java类都存在于JAR/classpath中,java,jar,code-analysis,Java,Jar,Code Analysis,我想确保JAR在部署到服务器之前不会抛出NoClassDefinitionFound异常。更高级的要求是能够指定额外的类路径 如何做到这一点?一般来说,这是不可能的,因为您的JAR文件可以使用Class.forName()或ClassLoader.loadClass()方法动态加载类 我想说的是,正确的方法是在构建过程中使用一些依赖项管理工具,它将为您组装所有依赖项 Maven war插件将自动为您完成此任务它无法完成。我总是可以在以后添加另一个会导致错误的Jar。检查这可能会有所帮助,因为JV

我想确保JAR在部署到服务器之前不会抛出NoClassDefinitionFound异常。更高级的要求是能够指定额外的类路径


如何做到这一点?

一般来说,这是不可能的,因为您的JAR文件可以使用
Class.forName()
ClassLoader.loadClass()方法动态加载类

我想说的是,正确的方法是在构建过程中使用一些依赖项管理工具,它将为您组装所有依赖项


Maven war插件将自动为您完成此任务

它无法完成。我总是可以在以后添加另一个会导致错误的Jar。检查这可能会有所帮助,因为JVM必须能够提取Class.forName()和ClassLoader.loadClass()调用以及从字节码传递给它们的FQN,对吗?在这种情况下,为什么其他工具不能?因为通常只有在运行时才知道实际值-web应用程序本身就是一个很好的例子:应用程序服务器在解析web.xml或扫描JAR以查找注释之前不知道要加载哪些类