gpt4 book ai didi

java - 如何使用 Java ClassLoader 打开外部 H2DB 驱动程序?

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:07 25 4
gpt4 key购买 nike

我想在加载应用程序时加载 h2 数据库驱动程序。我使用 URLClassLoader 将外部库加载到类路径中,但出现以下错误:

19:25:56 [SEVERE] java.sql.SQLException: No suitable driver found for jdbc:h2:x\y\store.h2db
19:25:56 [SEVERE] at java.sql.DriverManager.getConnection(Unknown Source)
19:25:56 [SEVERE] at java.sql.DriverManager.getConnection(Unknown Source)

我使用这段代码来加载我的库:

File myJar = new File("./lib/h2.jar");
URL url = myJar.toURL();
URL[] urls = new URL[]{url};
URLClassLoader cl = new URLClassLoader(urls, this.getClass().getClassLoader());
Driver drv = (Driver) Class.forName("org.h2.Driver", true, cl).newInstance();
DriverManager.registerDriver(drv);

在此先感谢您的帮助。

最佳答案

更新:

我找到了解决方案,使用以下代码加载 JAR 文件或类。

private void loadExternalDriver(File file) throws Exception {
Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class});
method.setAccessible(true);
method.invoke(ClassLoader.getSystemClassLoader(), new Object[]{file.toURI().toURL()});
}

在我的例子中:

File driver = new File("./lib/h2.jar");
this.loadExternalDriver(driver);
Class.forName("org.h2.Driver");

效果很好。感谢您的帮助。

关于java - 如何使用 Java ClassLoader 打开外部 H2DB 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13958758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com