java – 如何在运行时知道JAR文件是否已存在于类路径中?

如果特定的JAR文件已经在我的类路径中,那么在运行时知道的最佳方法是什么? (如果不是这种情况,我应该在运行时添加它).

我事先并不知道罐子的名字,也不知道里面的类.用户可以选择它. jar表示运行时可插入组件(我的问题中的驱动程序).

解决方法:

一种实用的方法:Class.forName(“com.myclass”),其中com.myclass是一个在你的目标jar里面(并且只在里面)的类;如果抛出ClassNotFoundException,那么jar不在你当前的类路径上.

但请记住,loading a jar at runtime不是很简单,你需要搞乱类加载器.
通常(有例外)不是这样,你应该能够在运行之前将jar显式添加到类路径中.

更新:更新的问题表明我们事先并不知道“罐子的名称或其中的类”;如果是这样,这个答案显然不适用.答案取决于您的特定类加载器.在通常情况下,AlexAndas的回答应该有效.

上一篇:从检测方法调用自己的类时,Java NoClassDefFoundError


下一篇:java – Android上的NoClassDefFoundError