JDK1.6.0_16을 사용하여 beanshell 2.0b4를 동적으로로드하려고 시도하는이 간단한 프로그램을 가지고 있습니다 (the documentation에서 제안 함) 행운이 없습니다. 설명서에서는 beanshells의 getClass() 메서드를 사용하면 이전에 "addClassPath()"메서드에 의해로드 된 jars를로드합니다. 그것은 작동하지 않습니다. 나는 강하게 데이 문제는 (으로 Beanshell에) getClass() 메소드가 자신의 동적으로 변경된 클래스 경로를 참조 할 수없는 제안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();
}
...이에 도움이 필요합니다.
참고 : 나는 (기존 JRE 클래스 로더를로드 할 수있는 인,하지으로 Beanshell 클래스 로더를) jre/lib/ext 디렉토리에 mysql.jar 파일을 넣을 때이 코드는 작동
필자가 제공 한 기사에서 아이디어를 실험했지만 여전히 클래스 로더 문제를 극복하지 못했습니다. 나는 그것을 포기할지도 모른다. – djangofan