Java:如果类存在则在运行时检查
我正在开发一个依赖于第三方库的软件。 由于许可协议,此库不能与软件一起发货,并且用户在启动程序时必须已在本地安装库。
有没有办法检查这个特定的库是否存在于类路径中并且可以加载? 如果不是,我想提供一个对话框,允许用户指向该位置,并动态地将此位置添加到类路径。
谢谢你的帮助!
尝试这个:
try { Class> clazz = Class.forName("com.acme.SecretClass"); } catch (ClassNotFoundException e) { // Show dialog }
我知道计算时间最快的方法是:
public class ClazzUtil { public static boolean isClassnameAvailable(String clazzName) { try { Class.forName(clazzName, false, ClazzUtil.class.getClassLoader()); } catch (LinkageError | ClassNotFoundException e) { return false; } return true; } }
如果某个类在运行时不存在,则会抛出ClassNotFoundException。 您可以通过以下方式检查。
try { Class cls = Class.forName("yourClassName"); } catch (ClassNotFoundException e) { e.printStackTrace(); }
刚解决了我的代码中的问题,晚餐很有用,没有引发exception。
@SuppressWarnings("finally") private boolean existClass(String className){ Class> classname= null; try { classname = Class.forName(className); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally{ if(classname == null) return false; else return true; } }
- 如何在Play Framework中更改模板引擎?
- struts2会话维护
- swagger – 没有API的空列表
- GWT会话管理
- java.lang.NoClassDefFoundError:org / springframework / core / io / ResourceLoader
- 如何在jetty服务器中为CSS,Javascript,图像等静态资源设置expires头
- 使用Jackson JSON解析为布尔值为TRUE或FALSE
- 我在哪里可以找到Netbeans中的Xlint选项?
- java.lang.IllegalAccessError:尝试访问方法com.google.common.util.concurrent.SimpleTimeLimiter。 使用Selenium-Java 3.5.1或更高版本时