RJDBC - ClassNotFoundException при первом выполнении скрипта - PullRequest
0 голосов
/ 25 июня 2019

У меня есть код

    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 занимает некоторое время, и поэтому он хорошо работает для второго запуска, но не для первого.

Есть предложения?

...