[英]Beanshell won't load my dynamically added JDBC Driver class?
使用JDK1.6.0_16,我有一个简单的程序,试图在其中获取beanshell 2.0b4来动态加载.jar(如文档所建议的那样),而且我没有运气。 该文档说,如果我使用beanshells的getClass()方法,它将加载以前由“ addClassPath()”方法加载的jar。 它不起作用。 我需要这方面的帮助...
//debug();
addClassPath("mysql-connector-java-5.1.15.jar");
import com.mysql.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Arrays;
System.out.println("MySQL Connect Example.");
System.out.println("Classpath: " + Arrays.toString( getClassPath() ) + "\n");
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "test";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "password";
try {
Class driverClass = getClass( driver );
if(driverClass != null) {
Driver driver = driverClass.newInstance();
if(driver != null) {
DriverManager.registerDriver(driver);
}
}
conn = DriverManager.getConnection(url+dbName,userName,password);
System.out.println("Connected to the database");
conn.close();
System.out.println("Disconnected from database");
} catch (Exception e) {
e.printStackTrace();
}
我强烈建议的问题是(beanshell的)getClass()方法无法看到其自身动态更改的类路径。
注意:仅当我将mysql.jar文件放入jre / lib / ext目录(旧的jre类加载器可以加载它;而不是beanshell类加载器)时,此代码才有效
这可能不是一个BeanShell的事情,JDBC具有跨加载驱动程序类加载器(检查出类Javadoc问题的ClassLoader ,看看黑客就像这样 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.