[BioC] Failed installing SJava on MacOS (success!)

Michael Dondrup Michael.Dondrup at uni.no
Fri Jan 22 12:02:20 CET 2010


Dear Seth and Martin,

this is great news. Thank you very much for this effort. I tried it and it works without problem in R started in  a terminal.

If I use the R-GUI however, I get:
[R.app GUI 1.31 (5537) i386-apple-darwin9.8.0]

> library(SJava)
Error: package 'SJava' is not installed for 'arch=i386'
That's where it doesnt work:
> sessionInfo()
R version 2.10.1 (2009-12-14) 
i386-apple-darwin9.8.0 

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
> 

That's where it works:
> sessionInfo()
R version 2.10.1 (2009-12-14) 
x86_64-apple-darwin9.8.0 

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
> 

Looks like another architecture dependent issue, as if this code is only installed for the 64bit version of R.

Anyway, it is really great that it's working, so I can try advance to use RWebServices :)

Whenever I can test something, pls let me know.

Best
Michael


Am Jan 21, 2010 um 8:26 PM schrieb Seth Falcon:

> Hi all,
> 
> Michael, your debugging details inspired me and this morning Martin and had some time to dig for a solution.
> 
> There were a couple of issues.  The FindClass call was failing because the RForeignReference class depends on native code and the required "DLL" was not being found.  The reason the "DLL" was not being found was because the wrong path was being set for java.library.path -- R now uses an architecture-specific subdirectory of $PACKAGE/libs (e.g. $PACKAGE/libs/x86_64).  In addition, Java is looking for a .dylib not a .so.
> 
> In any case, we've updated the source for SJava in svn, and you can checkout the latest to give it a try:
> 
> svn co --username=readonly \
>  --passowrd=readonly \
>  https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/SJava
> 
> Please let us know if it works for you.
> 
> There are still some outstanding issues on OS X.  In particular, GUI code that uses the AWT classes are not currently working.
> 
> + seth
> 
> 
> On 1/21/10 7:44 AM, Michael Dondrup wrote:
>> Hi,
>> this is just an update. After having it running on Linux, I thought I could debug around in the mac install,
>> maybe it helps to isolate the problem. here is what I tried so far to rule out any simple error:
>> 
>> -- First question: where does the error message come from?
>> 
>> function is isRReference in RReferenceCall.c:
>> 
>> /* #line 378 "RReferenceCall.cweb" */
>> jboolean
>> isRReference(jobject obj, JNIEnv *env)
>> {
>>     jclass klass;
>>     jboolean ans;
>>     klass = VMENV FindClass(env, "org/omegahat/R/Java/RForeignReference");
>>     if(!klass) {
>>         PROBLEM "Can't find org.omegahat.R.Java.RForeignReference"
>>             ERROR;
>>     }
>>     ans = VMENV IsInstanceOf(env, obj, klass);
>> //XX Do we need to release this klass.
>> 
>>     return(ans);
>> }
>> 
>> conclusion: FindClass does not find it.
>> (So I would like to inspect the "env" variable, but don't know how to do this.)
>> 
>> -- Then, where is that class org.omegahat.R.Java.RForeignReference?
>> This class is compiled from /SJava/inst/org/omegahat/R/Java/RForeignReference.java and installed to
>> /Library/Frameworks/R.framework/Versions/2.10/Resources/library/SJava/org/omegahat/R/Java/
>> Does it contain the class? Yes:
>> 
>> $ javap -classpath . RForeignReference
>> Compiled from "RForeignReference.java"
>> public class org.omegahat.R.Java.RForeignReference extends org.omegahat.Interfaces.NativeInterface.ForeignReference{
>>     static boolean LoadLibrary;
>>     public org.omegahat.R.Java.RForeignReference(java.lang.String);
>>     public org.omegahat.R.Java.RForeignReference(java.lang.String, org.omegahat.Interfaces.NativeInterface.OmegaInterfaceManager);
>>     public org.omegahat.R.Java.RForeignReference(org.omegahat.Interfaces.NativeInterface.ForeignReference);
>>     public org.omegahat.R.Java.RForeignReference(org.omegahat.Interfaces.NativeInterface.ForeignReference, org.omegahat.Interfaces.NativeInterface.OmegaInterfaceManager);
>>     public java.lang.Object localEval(org.omegahat.Environment.Parser.Parse.List, java.lang.String, java.lang.String, java.lang.String[])       throws java.lang.Exception;
>>     public native java.lang.Object reval(java.lang.String, java.lang.Object[], java.lang.String, java.lang.String, java.lang.String[]);
>>     static {};
>> }
>> 
>> -- Is it on the classpath? Add this path explicitly to  $CLASSPATH and set it during .JavaInit and turned on verbose=T:
>> Didn't work, looks as if the classpath setting is ignored.
>> 
>>> .JavaInit(default=javaConfig(classPath=c("/Library/Frameworks/R.framework/Versions/2.10/Resources/library/SJava/org/omegahat/R/Java/", javaConfig()@classPath)), verbose=T)
>> An object of class "JavaConfiguration"
>> Slot "classPath":
>> [1] "/Library/Frameworks/R.framework/Versions/2.10/Resources/library/SJava/org/omegahat/R/Java/:/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/Environment.jar:/Library/Frameworks/R.framework/Resources/library/SJava/org/..:/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/antlr.jar:/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/jas.jar:/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/jhall.jar"
>> 
>> Slot "libraryPath":
>> [1] "/Library/Frameworks/R.framework/Resources/library/SJava/libs"
>> 
>> Slot "properties":
>> [1] "-DEmbeddedInR=true"
>> [2] "-DInterfaceManagerClass=org/omegahat/Interfaces/NativeInterface/OmegaInterfaceManager"
>> [3] "-DForeignReferenceBaseClass=org/omegahat/R/Java/RJavaInstance"
>> [4] "-Djava.compiler=NONE"
>> [5] "-DOMEGA_HOME=/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat"
>> [6] "-DOmegahatSearchPath=.,${OMEGA_HOME}/Environment/Scripts/Run,${OMEGA_HOME}/Jars/Environment.jar"
>> [7] "-Djava.library.path=/Library/Frameworks/R.framework/Resources/library/SJava/libs"
>> 
>> Slot "options":
>> character(0)
>> 
>> Slot "args":
>> character(0)
>> 
>> Got it
>> 
>>> example(.Java)
>> ....
>> Error in .Java(v, "add", "A string element") :
>>   Can't find org.omegahat.R.Java.RForeignReference
>> 
>> 
>> -- Put all classes into a jar file and added the jar file to the class path in .JavaInit
>> Didn't work.
>> 
>> 
>> So I'm giving up for now. Would really like to have this work and in principle it should, but something seems to be very odd on the mac :(
>> 
>> Thank you again, and sorry for this lengthy email.
>> 
>> 
>> Best
>> Michael
>> 
>> 
>> 
>> 
>> 
>> Am Jan 19, 2010 um 6:37 PM schrieb Seth Falcon:
>> 
>>> On 1/19/10 8:58 AM, Martin Morgan wrote:
>>>> Michael Dondrup wrote:
>>>>> Am Jan 19, 2010 um 3:39 PM schrieb Martin Morgan:
>>>>> 
>>>>>> Michael Dondrup wrote:
>>>>>>> Hi,
>>>>>>> I would like to use RWebServices and therefore SJava on Mac OS snow leopard. The documentation does not explicitly mention Mac os, so it's
>>>>>>> maybe not supported, but i hope it can be made working anyway.
>>>>>>> Maybe somebody out there got this configuration running and could help? I am trying to install SJava 0.72. I try the following:
>>>>>>> 
>>>>>>>> library(SJava)
>>>>>>> Load the Java VM with .JavaInit()
>>>>>>>> .JavaInit()
>>>>>>>> example(.Java)
>>>>>>> .Java>     v<- .JavaConstructor("java.util.Vector", as.integer(10))
>>>>>>> 
>>>>>>> .Java>    .Java(v, "add", "A string element")
>>>>>>> Error in .Java(v, "add", "A string element") :
>>>>>>>  Can't find org.omegahat.R.Java.RForeignReference
>>>> 
>>>> this is in org.omegahat/Jars/RJava.jar, e.g.,
>>>> 
>>>>   jar tf org.omegahat/Jars/RJava.jar
>>>> 
>>> 
>>> Curious, as this jar did not appear on your classpath in your previous mail.
>>> 
>>> I'm able to reproduce the error on my Snow Leopard laptop.  I also notice that I don't have this jar.  There are .class files under the package structure in org/omegahat/R/Java/*.class. RForeignReference.class is among them and this would seem to be the purpose of the "<...>/SJava/org/.." entry in class path.
>>> 
>>>> more below...
>>>>> Here is the output of javaConfig().
>>>>> 
>>>>>> javaConfig()
>>>>> An object of class "JavaConfiguration"
>>>>> Slot "classPath":
>>>>> [1] "/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/Environment.jar"
>>>>> [2] "/Library/Frameworks/R.framework/Resources/library/SJava/org/.."
>>>>> [3] "/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/antlr.jar"
>>>>> [4] "/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/jas.jar"
>>>>> [5] "/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat/Jars/jhall.jar"
>>>>> 
>>>>> Slot "libraryPath":
>>>>> [1] "/Library/Frameworks/R.framework/Resources/library/SJava/libs"
>>>>> 
>>>>> Slot "properties":
>>>>>                                                                  EmbeddedInR
>>>>>                                                                       "true"
>>>>>                                                        InterfaceManagerClass
>>>>>              "org/omegahat/Interfaces/NativeInterface/OmegaInterfaceManager"
>>>>>                                                    ForeignReferenceBaseClass
>>>>>                                          "org/omegahat/R/Java/RJavaInstance"
>>>>>                                                                java.compiler
>>>>>                                                                       "NONE"
>>>>>                                                                   OMEGA_HOME
>>>>>       "/Library/Frameworks/R.framework/Resources/library/SJava/org/omegahat"
>>>>>                                                           OmegahatSearchPath
>>>>> ".,${OMEGA_HOME}/Environment/Scripts/Run,${OMEGA_HOME}/Jars/Environment.jar"
>>>> 
>>>> My javaConfig() (not on Mac) has ${OMEGA_HOME} expanded
>>> 
>>> Mine is not expanded.  I tried expanding it, but that didn't seem to make a difference either. :-(
>>> 
>>> 
>>> --
>>> Seth Falcon
>>> Bioconductor Core Team | FHCRC
>>> 
>>> _______________________________________________
>>> Bioconductor mailing list
>>> Bioconductor at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>> 
>> _______________________________________________
>> Bioconductor mailing list
>> Bioconductor at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
> 
> 
> -- 
> Seth Falcon | @sfalcon | http://userprimary.net/user



More information about the Bioconductor mailing list