Я этот заводной скрипт, написанный в .groovy файле:Groovy класса загрузчик обыкновение загрузки класса Java
import groovy.sql.Sql;
def doit() {
Class.forName('oracle.jdbc.driver.OracleDriver'); // If i skip this line it throws SQLException no driver registered for URL
def db = [url:'jdbc:oracle:thin:/@localhost:1555:AVDB', user:'sys as sysdba', password:'secret',driver:'oracle.jdbc.driver.OracleDriver'];
def sql = Sql.newInstance(db.url, db.user, db.password, db.driver) ;
sql.execute 'CREATE USER RandomUser identified by Secret123';
}
Я зову выше Groovy с Java в следующим образом:
ClassLoader parent = getClass().getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent);
Class groovyClass = loader.parseClass(groovySource); // groovySource is a File object pointing to .groovy file
GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
Object[] args = {};
groovyObject.invokeMethod("doit", args);
Проблема:
Класс oracle.jdbc.driver.OracleDriver присутствует в Javapath класса, но groovy не могу найти его по строке: Class.forName('oracle.jdbc.driver.OracleDriver');
Throw ClassNotFoundException.
@Reimeus Да, его на пути Java classpath – VishalDevgire
Как запустить код Java? что классный загрузчик вы получаете от getClass(). getClassLoader()? можете ли вы предоставить полное исключение stacktrace? –