rJava classpath in an R package... works on some systems... not others -


i have built package r wraps r around java classes. on development laptop (ubuntu) package loads , works great. on 2 other machines (one ubuntu, 1 debian) have tried use package , classpath not being set .jpackage() call.

all 3 machines running r 2.12.1 , rjava .8-8 believe recent.

the entire package up @ google code here's contents of zzz.r file works set class path on 1 machine not others:

##' @import rjava .onload <- function(lib, pkg) {     pathtosdk <- paste(system.file(package = "gsradr") , "/gsrad_sample/lib/", sep="")      jarpaths <- c(paste(pathtosdk, "clima_core-1.0.0.jar", sep=""),                   paste(pathtosdk, "clima_gsrad-1.0.0.jar", sep=""),                   paste(pathtosdk, "colt-1.0.jar", sep=""),                   paste(pathtosdk, "commons-lang-2.0.jar", sep=""),                   paste(pathtosdk, "junit-3.8.1.jar", sep=""),                   paste(pathtosdk, "log4j-1.2.8.jar", sep=""),                   paste(pathtosdk, "xqore.jar", sep="")                   )         .jpackage(pkg, morepaths=jarpaths)     attach( javaimport( c("java.lang", "java.io")))     packagestartupmessage( paste( "gsradr loaded. classpath is: ", paste(.jclasspath(), collapse=" " ) ) )         } 

on laptop returns following:

> require(gsradr) loading required package: gsradr loading required package: rjava gsradr loaded. classpath is:  /home/jal/r/library/rjava/java /home/jal/r/library/gsradr/gsrad_sample/lib/clima_core-1.0.0.jar /home/jal/r/library/gsradr/gsrad_sample/lib/clima_gsrad-1.0.0.jar /home/jal/r/library/gsradr/gsrad_sample/lib/colt-1.0.jar /home/jal/r/library/gsradr/gsrad_sample/lib/commons-lang-2.0.jar /home/jal/r/library/gsradr/gsrad_sample/lib/junit-3.8.1.jar /home/jal/r/library/gsradr/gsrad_sample/lib/log4j-1.2.8.jar /home/jal/r/library/gsradr/gsrad_sample/lib/xqore.jar 

but on other machines returns only:

> require(gsradr) loading required package: gsradr loading required package: rjava gsradr loaded. classpath is:  /usr/lib/r/site-library/rjava/java 

any tips on might cause .jpackage() call work differently on different machines? i've built packages using rjava before , used same template .onload() function no problems.

edit

so on 1 of machines not working, tried add path class path "non package" way. , failed:

> .jaddclasspath("/home/jal/r/x86_64-pc-linux-gnu-library/2.12/gsradr/gsrad_sample/lib/clima_core-1.0.0.jar") > .jclasspath() [1] "/usr/lib/r/site-library/rjava/java" 

um... can't add class path. why?

edit ii

when loading custom library onto 1 of machines not working, using temporary library location, so:

install.packages("/tmp/gsradr_0.01.tar.gz", lib=/my/path) 

then loading library this:

require(garadr, lib=/my/path) 

i discovered, through trial , error, if remove lib= bit work properly. why loading r package uses rjava custom library location keep .jaddclasspath() function working?

i may able work around this, i'd love know what's causing odd (at least me) behavior.

i suspect directory or file in first edit doesn't exist: /home/jal/r/x86_64-pc-linux-gnu-library/2.12/gsradr/gsrad_sample/lib/clima_core-1.0.0.jar. (also, sure want add particular file, or directory?)

try file.info("/home/jal/r/x86_64-pc-linux-gnu-library/2.12/gsradr/gsrad_sample/lib/clima_core-1.0.0.jar").

in case, tried .jaddclasspath("/willy/wonka") , didn't work. when tried .jaddclasspath("/home/voldemort"), worked. (let java horcrux.)


Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -