16

I use R 2.13 from the CRAN apt repo for Ubuntu 10.04, and I'm trying to install Deducer, which requires JGR/rJava, but rJava refuses to build/install, complaining about being unable to build a JNI app. I tried sudo R CMD javareconf as suggested but that only led to a different error about the configuration being unset. I found R: rJava package install failing, so I tried the suggestions there of installing r-cran-rjava (but that's 0.8 and Deducer/JGR seem to insist on installing 0.9) and fiddling with my $JAVA_HOME, all to no avail. Any ideas?

Here's a more complete transcript of what happened:

$ sudo aptitude install r-cran-rjava ... $ R R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > install.packages(c('JGR','Deducer')) Installing package(s) into ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13’ (as ‘lib’ is unspecified) also installing the dependencies ‘rJava’, ‘JavaGD’, ‘iplots’ trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/rJava_0.9-1.tar.gz' Content type 'application/x-gzip' length 527197 bytes (514 Kb) opened URL ================================================== downloaded 514 Kb trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/JavaGD_0.5-4.tar.gz' Content type 'application/x-gzip' length 102242 bytes (99 Kb) opened URL ================================================== downloaded 99 Kb trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/iplots_1.1-4.tar.gz' Content type 'application/x-gzip' length 330323 bytes (322 Kb) opened URL ================================================== downloaded 322 Kb trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/JGR_1.7-7.tar.gz' Content type 'application/x-gzip' length 536564 bytes (523 Kb) opened URL ================================================== downloaded 523 Kb trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/Deducer_0.4-4.tar.gz' Content type 'application/x-gzip' length 5325794 bytes (5.1 Mb) opened URL ================================================== downloaded 5.1 Mb * installing *source* package ‘rJava’ ... checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o c hecking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for string.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking for an ANSI C-conforming const... yes checking whether time.h and sys/time.h may both be included... yes configure: checking whether gcc supports static inline... yes checking whether setjmp.h is POSIX.1 compatible... yes checking whether sigsetjmp is declared... yes checking whether siglongjmp is declared... yes checking Java support in R... present: interpreter : '/usr/bin/java' archiver : '/usr/bin/jar' compiler : '/usr/bin/javac' header prep.: '/usr/bin/javah' cpp flags : '-I/usr/lib/jvm/java-6-openjdk/jre/../include' java libs : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm' checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details. Make sure you have Java Development Kit installed and correctly registered in R. If in doubt, re-run "R CMD javareconf" as root. ERROR: configuration failed for package ‘rJava’ * removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/rJava’ * installing *source* package ‘JavaGD’ ... checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for string.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking for an ANSI C-conforming const... yes checking whether time.h and sys/time.h may both be included... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking return type of signal handlers... void checking for memset... yes checking for mkdir... yes checking for rmdir... yes checking for select... yes checking for socket... yes checking Java support in R... present: interpreter : '/usr/bin/java' cpp flags : '-I/usr/lib/jvm/java-6-openjdk/jre/../include' java libs : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm' checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details. ERROR: configuration failed for package ‘JavaGD’ * removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/JavaGD’ ERROR: dependency ‘rJava’ is not available for package ‘iplots’ * removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/iplots’ ERROR: dependencies ‘rJava’, ‘JavaGD’, ‘iplots’ are not available for package ‘JGR’ * removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/JGR’ ERROR: dependencies ‘rJava’, ‘JGR’ are not available for package ‘Deducer’ * removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/Deducer’ The downloaded packages are in ‘/tmp/RtmpCSITmm/downloaded_packages’ Warning messages: 1: In install.packages(c("JGR", "Deducer")) : installation of package 'rJava' had non-zero exit status 2: In install.packages(c("JGR", "Deducer")) : installation of package 'JavaGD' had non-zero exit status 3: In install.packages(c("JGR", "Deducer")) : installation of package 'iplots' had non-zero exit status 4: In install.packages(c("JGR", "Deducer")) : installation of package 'JGR' had non-zero exit status 5: In install.packages(c("JGR", "Deducer")) : installation of package 'Deducer' had non-zero exit status > R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > install.packages('rJava') Installing package(s) into ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13’ (as ‘lib’ is unspecified) trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/rJava_0.9-1.tar.gz' Content type 'application/x-gzip' length 527197 bytes (514 Kb) opened URL ================================================== downloaded 514 Kb * installing *source* package ‘rJava’ ... checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for string.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking for an ANSI C-conforming const... yes checking whether time.h and sys/time.h may both be included... yes configure: checking whether gcc supports static inline... yes checking whether setjmp.h is POSIX.1 compatible... yes checking whether sigsetjmp is declared... yes checking whether siglongjmp is declared... yes checking Java support in R... present: interpreter : '/usr/bin/java' archiver : '/usr/bin/jar' compiler : '/usr/bin/javac' header prep.: '/usr/bin/javah' cpp flags : '-I/usr/lib/jvm/java-6-openjdk/jre/../include' java libs : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm' checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details. Make sure you have Java Development Kit installed and correctly registered in R. If in doubt, re-run "R CMD javareconf" as root. ERROR: configuration failed for package ‘rJava’ * removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/rJava’ The downloaded packages are in ‘/tmp/RtmpTk0ftk/downloaded_packages’ Warning message: In install.packages("rJava") : installation of package 'rJava' had non-zero exit status > $ sudo R CMD javareconf Java interpreter : /usr/bin/java Java version : 1.6.0_20 Java home path : /usr/lib/jvm/java-6-openjdk/jre Java compiler : /usr/bin/javac Java headers gen.: /usr/bin/javah Java archive tool: /usr/bin/jar Java library path: $(JAVA_HOME)/lib/amd64/server:$(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -L$(JAVA_HOME)/lib/amd64 -L$(JAVA_HOME)/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm JNI cpp flags : Updating Java configuration in /etc/R Done. $ R R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > install.packages('rJava') Installing package(s) into ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13’ (as ‘lib’ is unspecified) trying URL 'http://cran.cnr.Berkeley.edu/src/contrib/rJava_0.9-1.tar.gz' Content type 'application/x-gzip' length 527197 bytes (514 Kb) opened URL ================================================== downloaded 514 Kb * installing *source* package ‘rJava’ ... checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes c hecking for sys/wait.h that is POSIX.1 compatible... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for string.h... (cached) yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking for an ANSI C-conforming const... yes checking whether time.h and sys/time.h may both be included... yes configure: checking whether gcc supports static inline... yes checking whether setjmp.h is POSIX.1 compatible... yes checking whether sigsetjmp is declared... yes checking whether siglongjmp is declared... yes checking Java support in R... present: interpreter : '/usr/bin/java' archiver : '/usr/bin/jar' compiler : '/usr/bin/javac' header prep.: '/usr/bin/javah' cpp flags : '' java libs : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm' configure: error: One or more Java configuration variables are not set. Make sure R is configured with full Java support (including JDK). Run R CMD javareconf as root to add Java support to R. If you don't have root privileges, run R CMD javareconf -e to set all Java-related variables and then install rJava. ERROR: configuration failed for package ‘rJava’ * removing ‘/home/yang/R/x86_64-pc-linux-gnu-library/2.13/rJava’ The downloaded packages are in ‘/tmp/RtmpsJBxfe/downloaded_packages’ Warning message: In install.packages("rJava") : installation of package 'rJava' had non-zero exit status > 
5
  • 2
    It gave you the same advice several times. Is there a good reason for not heeding it? Here it is again if you missed it: "If in doubt, re-run "R CMD javareconf" as root." Commented Aug 20, 2011 at 2:57
  • 1
    Huh? I explicitly stated that I did that in my original question, and it's also in the transcript.... Commented Aug 20, 2011 at 3:02
  • Sorry. What I saw was that you referenced a question and then proceeded to install before doing the fixes that were suggested. Commented Aug 20, 2011 at 3:04
  • 1
    Using sudo and running as root are not exactly the same thing. Commented Aug 20, 2011 at 3:05
  • wow! this is quite an eye-opener! Indeed "sudo R CMD javareconf" didn't do it - but "sudo su" and then "R CMD javareconf" made the difference! thanks! Commented Jun 8, 2014 at 8:31

4 Answers 4

17

Dah, not long after posting I found the answer here:

http://r-interface.blogspot.com/2012/04/install-r-jgr-and-deducer-in-ubuntu.html

Although I already had Sun Java installed, the key was to run update-java-alternatives to actually switch to Sun Java first before running javareconf:

sudo update-java-alternatives -s java-6-sun sudo R CMD javareconf 
Sign up to request clarification or add additional context in comments.

1 Comment

It should all work as shipped in Debian / Ubuntu with the Java option configured at build for the R and rJava packages, using the Java SDK in Ubuntu. If you decide to switch to a different Java backend, you must indeed reconfigure.
1

One other (relatively obvious) warning: don't do what I did and install both java6 and java7. That led to a conflict I was unable to 'fix' via specifying paths and environment variables. Removing both and reinstalling java6 led to successful installation of JGR. ( This under ubuntu precise, on an Apple G4 powerbook)

Comments

0

Here's another option:

before running R, do this

export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/amd64/server 

(for path above, substitute location of your particular libjvm.so, if you have a different configuration). To find libjvm.so, you can do

sudo updatedb && locate libjvm.so 

Comments

0

DWright is right..an alternative instead export it every time than you start R is locate your java path

 sudo locate libjvm.so 

and add ir to ldpaths

 sudo gedit /etc/R/ldpaths i.e ${JAVA_HOME=/usr/java/jdk1.7.0_07/jre} 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.