如果特定的JAR文件已经在我的类路径中,那么在运行时知道的最佳方法是什么? (如果不是这种情况,我应该在运行时添加它).
我事先并不知道罐子的名字,也不知道里面的类.用户可以选择它. jar表示运行时可插入组件(我的问题中的驱动程序).
解决方法:
一种实用的方法:Class.forName(“com.myclass”),其中com.myclass是一个在你的目标jar里面(并且只在里面)的类;如果抛出ClassNotFoundException,那么jar不在你当前的类路径上.
但请记住,loading a jar at runtime不是很简单,你需要搞乱类加载器.
通常(有例外)不是这样,你应该能够在运行之前将jar显式添加到类路径中.
更新:更新的问题表明我们事先并不知道“罐子的名称或其中的类”;如果是这样,这个答案显然不适用.答案取决于您的特定类加载器.在通常情况下,AlexAndas的回答应该有效.