[R] SJava help

Duncan Temple Lang duncan at research.bell-labs.com
Wed Sep 24 21:59:56 CEST 2003


Hi.

 Over the past few weeks, I have spent some time enhancing the
SJava package and ironing out some issues (syncrhonization
and locking of the R evaluator, etc.). Along the way, 
I did encounter the problem you mention about java.lang.Hashtable.
I can't quite remember what the problem was, but I think it
may have been a typo in one part of the code.

I will make a new version of the package available in the next
day or so and hopefully your problem and others will be 
resolved.

 D.



Weiming Zhang wrote:
> Hi, Henrik,
> 
> Thank you very much for replying.
> 
> I actually have the JAVA_HOME environment variable set in a linux shell
> script .bash_profile which set up all of my development environment
> before I install this SJava package and it points to the current java
> cdk I am using. So it is weird that R could not find the common java
> libraries. Do you think I need to use .Renviron instead of
> .bash_profile?
> 
> Weiming
>  
> On Wed, 2003-09-24 at 12:42, Henrik Bengtsson wrote:
> > Hi, I do not have Linux myself but looking at your error message
> > 
> > > > .JavaInit()
> > > [1] error initializing manager class can't find class 
> > > java/lang/Hashtable Error in .JavaInit() : Couldn't start 
> > > Java Virtual Machine: can't find class java/lang/Hashtable
> > > > 
> > 
> > it looks like you have not set the JAVA_HOME variable correctly. On a
> > Windows XP machine you will get the error (together with a popup
> > dialog):
> > 
> > > library(SJava)
> > using JAVA_HOME = /c/Program Files/Java/j2sdk1.4.0_02
> > Error in dyn.load(x, as.logical(local), as.logical(now)) :
> >         unable to load shared library
> > "c:/PROGRA~1/R/rw1071/library/SJava/libs/S
> > Java.dll":
> >   LoadLibrary failure:  The specified module could not be found.
> > Error in library(SJava) : .First.lib failed
> > >
> > 
> > See help(.Renviron) how to set the JAVA_HOME environment variable. 
> > 
> > ***Note*** on Windows XP (and maybe on other systems too) you have to
> > set JAVA_HOME differently if you have i) Java Runtime Edition or the ii)
> > Java SDK. For Java SDK, which you have, you have to set
> > 
> >   JAVA_HOME=C:/Program Files/Java/j2sdk1.4.0_02/jre/
> > 
> > and not to
> > 
> >   JAVA_HOME=C:/Program Files/Java/j2sdk1.4.0_02/
> > 
> > as one would guess. But with Java Runtime Edition you should do
> > 
> >   JAVA_HOME=C:/Program Files/Java/j2re1.4.1_02/
> > 
> > If you use ~/.Renviron it won't mess with your other settings. 
> > 
> > Again, I'm not sure if this applies to Linux, but it's worth a try.
> > 
> > Cheers
> > 
> > Henrik Bengtsson
> > 
> > 
> > > -----Original Message-----
> > > From: r-help-bounces at stat.math.ethz.ch 
> > > [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Weiming Zhang
> > > Sent: den 24 september 2003 19:16
> > > To: R-help at stat.math.ethz.ch
> > > Subject: [R] SJava help
> > > 
> > > 
> > > Hi,
> > > 
> > > I installed SJava 0.66-1 on my linux RH 7.2 machine. I am 
> > > using R-1.7.1. I set LD_LIBRARY_PATH up then called 
> > > library(SJava) and it was fine. But when I called 
> > > .JavaInit(),  I got weird error that states it could not find 
> > > java/lang/Hashtable. The session is below and shows my java 
> > > configuration. I am using j2sdk1.4.2_01 from Sun.
> > > 
> > > Thank you very much.
> > > 
> > > Weiming Zhang
> > > 
> > > > .javaConfig
> > > $classPath
> > > [1] "/usr/lib/R/library/SJava/org/omegahat/Jars/Environment.jar"
> > > [2] "/usr/lib/R/library/SJava/org/.."                           
> > > [3] "/usr/lib/R/library/SJava/org/omegahat/Jars/antlr.jar"      
> > > [4] "/usr/lib/R/library/SJava/org/omegahat/Jars/jas.jar"        
> > > [5] "/usr/lib/R/library/SJava/org/omegahat/Jars/jhall.jar"      
> > > 
> > > $properties
> > >                                                                 
> > > EmbeddedInR 
> > >                                                                      
> > > "true" 
> > >                                                       
> > > InterfaceManagerClass 
> > >             
> > > "org/omegahat/Interfaces/NativeInterface/OmegaInterfaceManager" 
> > >                                                   
> > > ForeignReferenceBaseClass 
> > >                                     
> > > "org/omegahat/R/Java/RForeignReference" 
> > >                                                               
> > > java.compiler 
> > >                                                                      
> > > "NONE" 
> > >                                                                  
> > > OMEGA_HOME 
> > >                                     
> > > "/usr/lib/R/library/SJava/org/omegahat" 
> > >                                                          
> > > OmegahatSearchPath 
> > > ".,${OMEGA_HOME}/Environment/Scripts/Run,${OMEGA_HOME}/Jars/En
> > > vironment.jar" 
> > >                                                           
> > > java.library.path 
> > >                                             
> > > "/usr/lib/R/library/SJava/libs" 
> > > 
> > > $libraryPath
> > > [1] "/usr/lib/R/library/SJava/libs"
> > > 
> > > $args
> > > character(0)
> > > 
> > > > .JavaInit()
> > > [1] error initializing manager class can't find class 
> > > java/lang/Hashtable Error in .JavaInit() : Couldn't start 
> > > Java Virtual Machine: can't find class java/lang/Hashtable
> > > > 
> > > 
> > > The output from installation is here and 
> > > I used R INSTALL -c SJavaPackageName:
> > > 
> > > * Installing *source* package 'SJava' ...
> > > creating cache ./config.cache
> > > checking for java... /opt/lang/java/j2sdk1.4.2_01/bin/java
> > > Java VM /opt/lang/java/j2sdk1.4.2_01/bin/java
> > > checking for javah... /opt/lang/java/j2sdk1.4.2_01/bin/javah
> > > checking for c++... c++
> > > checking whether the C++ compiler (c++  ) works... yes
> > > checking whether the C++ compiler (c++  ) is a 
> > > cross-compiler... no checking whether we are using GNU C++... 
> > > yes checking whether c++ accepts -g... yes checking for 
> > > gcc... gcc checking whether the C compiler (gcc  ) works... 
> > > yes checking whether the C compiler (gcc  ) is a 
> > > cross-compiler... no checking whether we are using GNU C... 
> > > yes checking whether gcc accepts -g... yes checking for 
> > > Rf_initEmbeddedR in -lR... no No R shared library found 
> > > updating cache ./config.cache creating ./config.status 
> > > creating Makevars creating src/Makevars creating 
> > > src/RSJava/Makefile creating Makefile_rules creating 
> > > inst/scripts/RJava.bsh creating inst/scripts/RJava.csh 
> > > creating R/zzz.R creating cleanup creating inst/scripts/RJava 
> > > Copying the cleanup script to the scripts/ directory Building 
> > > libRSNativeJava.so in /tmp/R.INSTALL.30363/SJava/src/RSJava
> > > if  test ! -d /usr/lib/R/library/SJava/libs ; then \
> > >     mkdir /usr/lib/R/library/SJava/libs ; \
> > > fi
> > > gcc -g -O2 -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux  -c CtoJava.c
> > > gcc -g -O2 -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux  -c 
> > > ErrorHandling.c gcc -g -O2 -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux  -c 
> > > ManagerInterfaceUtils.c gcc -g -O2 -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux  -c References.c 
> > > gcc -g -O2 -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux  -c JNIUtils.c
> > > gcc -shared  -o libRSNativeJava.so CtoJava.o ErrorHandling.o 
> > > ManagerInterfaceUtils.o References.o JNIUtils.o 
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/lib/i386/client
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/lib/i386
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/../lib/i386 -ljvm 
> > > -L/tmp/R.INSTALL.30363/SJava/inst/libs
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/lib/i386/client
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/lib/i386
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/../lib/i386
> > > -L/usr/lib/R/library/SJava/libs 
> > > if test -n "CtoJava.h ErrorHandling.h JNIUtils.h 
> > > ManagerInterfaceUtils.h References.h" ; then cp CtoJava.h 
> > > ErrorHandling.h JNIUtils.h ManagerInterfaceUtils.h 
> > > References.h /tmp/R.INSTALL.30363/SJava/inst/include ; fi mv 
> > > libRSNativeJava.so /tmp/R.INSTALL.30363/SJava/inst/libs
> > > Generating JNI header files from Java classes.
> > >    RForeignReference, RManualFunctionActionListener, 
> > > ROmegahatInterpreter & REvaluator
> > > *************
> > > Warning:
> > >     At present, to use the library you must set the 
> > >     LD_LIBRARY_PATH environment variable
> > >     to
> > >      
> > > /usr/lib/R/library/SJava/libs:/opt/lang/java/j2sdk1.4.2_01/jre
> > /lib/i386/client:/opt/lang/java/j2sdk1.4.2_>
> > 01/jre/lib/i386:/opt/lang/java/j2sdk1.4.2_01/jre/../lib/i386:
> > >     or use one of the RJava.bsh or RJava.csh scripts
> > > *************
> > > ** libs
> > > gcc -I/usr/lib/R/include -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c ConverterExamples.c -o 
> > > ConverterExamples.o gcc -I/usr/lib/R/include -D_R_ 
> > > -I/usr/lib/R/include -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c Converters.c -o 
> > > Converters.o gcc -I/usr/lib/R/include -D_R_ 
> > > -I/usr/lib/R/include -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c Reflectance.c -o 
> > > Reflectance.o gcc -I/usr/lib/R/include -D_R_ 
> > > -I/usr/lib/R/include -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c REmbed.c -o REmbed.o gcc 
> > > -I/usr/lib/R/include -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c REmbedWin.c -o 
> > > REmbedWin.o gcc -I/usr/lib/R/include -D_R_ 
> > > -I/usr/lib/R/include -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c REval.c -o REval.o gcc 
> > > -I/usr/lib/R/include -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c RFunctionListener.c -o 
> > > RFunctionListener.o gcc -I/usr/lib/R/include -D_R_ 
> > > -I/usr/lib/R/include -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c RReferenceCall.c -o 
> > > RReferenceCall.o gcc -I/usr/lib/R/include -D_R_ 
> > > -I/usr/lib/R/include -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c RStoJava.c -o RStoJava.o 
> > > gcc -I/usr/lib/R/include -D_R_ -I/usr/lib/R/include 
> > > -I/usr/lib/R/include/R_ext 
> > > -I/tmp/R.INSTALL.30363/SJava/src/RSJava  -I. 
> > > -I/tmp/R.INSTALL.30363/SJava/inst/include  -IRSJava 
> > > -I/opt/lang/java/j2sdk1.4.2_01/include
> > > -I/opt/lang/java/j2sdk1.4.2_01/include/linux 
> > > -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp  -fPIC  
> > > -O2 -m486 -fno-strength-reduce -g -c RtoJava.c -o RtoJava.o 
> > > gcc -shared -L/usr/local/lib -o SJava.so ConverterExamples.o 
> > > Converters.o Reflectance.o REmbed.o REmbedWin.o REval.o 
> > > RFunctionListener.o RReferenceCall.o RStoJava.o RtoJava.o 
> > > -L/tmp/R.INSTALL.30363/SJava/inst/libs
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/lib/i386/client
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/lib/i386
> > > -L/opt/lang/java/j2sdk1.4.2_01/jre/../lib/i386
> > > -L/usr/lib/R/library/SJava/libs -lRSNativeJava -ljvm    
> > > ** R
> > > ** inst
> > > ** help
> > >  >>> Building/Updating help pages for package 'SJava'
> > >      Formats: text html latex example 
> > >   Array                             text    html    latex   example
> > >   Dollar                            text    html    latex   example
> > >   DotJavaSigs                       text    html    latex
> > >   DotjavaConfig                     text    html    latex
> > >   JClass                            text    html    latex   example
> > >   Java                              text    html    latex   example
> > >   JavaConstructor                   text    html    latex   example
> > >   JavaInit                          text    html    latex   example
> > >   JavaTerminate                     text    html    latex   example
> > >   OmegahatExpression                text    html    latex   example
> > >   RSJava.symbol                     text    html    latex   example
> > >   RtoJavaSig                        text    html    latex   example
> > >   expandClassName                   text    html    latex   example
> > >   foreignReference                  text    html    latex   example
> > >   getForeignReferences              text    html    latex   example
> > >   getJavaConverterDescriptions      text    html    latex   example
> > >   getJavaHandler                    text    html    latex   example
> > >   getMethods                        text    html    latex   example
> > >   getNumJavaConverters              text    html    latex   example
> > >   interfaceGenerator                text    html    latex   example
> > >   isJavaInitialized                 text    html    latex   example
> > >   javaConfig                        text    html    latex   example
> > >   javaHandlerGenerator              text    html    latex   example
> > >   javaIs                            text    html    latex   example
> > >   javaMatchFunctions                text    html    latex
> > >   javaSig                           text    html    latex   example
> > >   jdynamicCompile                   text    html    latex   example
> > >   mergePath                         text    html    latex   example
> > >   mergeProperties                   text    html    latex   example
> > >   omegahatReference                 text    html    latex   example
> > >   removeJavaConverter               text    html    latex   example
> > >   setConvertible                    text    html    latex   example
> > >   setJavaConverter                  text    html    latex   example
> > >   setJavaFunctionConverter          text    html    latex   example
> > >   setJavaHandler                    text    html    latex   example
> > >      missing link(s):  javaHandlerGenerator()
> > > Creating the symbolic link for libSJava.so in 
> > > /usr/lib/R/library/SJava/libs/
> > > * DONE (SJava)
> > > 
> > > * DONE (INSTALL)
> > > 
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list 
> > > https://www.stat.math.ethz.ch/mailman/listinfo> /r-help
> > > 
> > > 
> >
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

-- 
_______________________________________________________________

Duncan Temple Lang                duncan at research.bell-labs.com
Bell Labs, Lucent Technologies    office: (908)582-3217
700 Mountain Avenue, Room 2C-259  fax:    (908)582-3340
Murray Hill, NJ  07974-2070       
         http://cm.bell-labs.com/stat/duncan




More information about the R-help mailing list