1
使用JDK1.6.0_16,我有這個簡單的程序,我試圖讓beanshell 2.0b4動態加載.jar(因爲the documentation表明它會這樣做),我沒有運氣。該文檔說,如果我使用beanshells的getClass()方法,那麼它將加載之前由「addClassPath()」方法加載的jar。它不工作。我需要這方面的幫助...Beanshell不會加載我的動態添加的JDBC驅動程序類?
//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的類加載器)
我一直在試驗你提供的那篇文章的想法,但仍然無法克服類加載器的問題。我可能會放棄它。 – djangofan