У меня есть код
library(RJDBC)
library(DBI)
library(rJava)
.jinit()
.jclassLoader()$setDebug(1L)
print(.jclassPath())
jdbcDriver <- JDBC(driverClass = "oracle.jdbc.OracleDriver",
classPath = "patTo/ojdbc6.jar")
Но когда я выполняю его впервые в консоли R, я получаю несколько исключений ClassNotFoundException.
RJavaClassLoader@1540e19d.findClass(oracle.as.jmx.framework.PortableMBeanFactory)
- URL loader did not find it: java.lang.ClassNotFoundException: oracle.as.jmx.framework.PortableMBeanFactory
RJavaClassLoader.findClass("oracle.as.jmx.framework.PortableMBeanFactory")
- trying class path "/usr/local/lib/R/site-library/rJava/java"
Directory, can get '/usr/local/lib/R/site-library/rJava/java/oracle/as/jmx/framework/PortableMBeanFactory.class'? NO
- trying class path "/etc/jdbc/ojdbc6.jar"
JAR file, can get 'oracle/as/jmx/framework/PortableMBeanFactory'? NO
- trying class path "/usr/local/lib/R/site-library/RJDBC/java/RJDBC.jar"
JAR file, can get 'oracle/as/jmx/framework/PortableMBeanFactory'? NO
>> ClassNotFoundException
RJavaClassLoader@1540e19d.findClass(oracle.jdbc.driver.OracleDiagnosabilityMBean)
RJavaClassLoader@1540e19d.findClass(oracle.jdbc.driver.DiagnosabilityMXBean)
Но если я буду запускать точно такой же код во второй раз, он будет работать нормально и не будет вызывать исключения.
Возможно, это звучит странно, но похоже, что загрузка драйвера в classpath занимает некоторое время, и поэтому он хорошо работает для второго запуска, но не для первого.
Есть предложения?