title: Installing rJava under R 2.14 and OpenSUSE fails
body: <p>I am trying to install <strong>rJava</strong> package on R 2.14.1-9.1 on <strong>OpenSUSE 11.3</strong>. I have seen <a href="https://stackoverflow.com/questions/3311940/r-rjava-package-install-failing">this</a> question, but it is for Ubuntu. I have installed Sun JDK and reconfigured the system to use it.</p>
  
  <pre><code>admin@linux-nb3w:~&gt; java -version
  java version "1.6.0_29"
  Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
  Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode)
  admin@linux-nb3w:~&gt; 
  </code></pre>
  
  <p><strong>EDIT 1:</strong>
  Updated the JDK and JRE. Now there is slightly different error when I run <code>install.packages("rJava")</code> , I get the following output with error (new error is posted and the end in <strong>bold</strong>):</p>
  
  <pre><code>&gt; install.packages("rJava")
  Installing package(s) into ‘/home/admin/R/i686-pc-linux-gnu-library/2.14’
  (as ‘lib’ is unspecified)
  --- Please select a CRAN mirror for use in this session ---
  Loading Tcl/Tk interface ... done
  trying URL 'http://ftp.iitm.ac.in/cran/src/contrib/rJava_0.9-3.tar.gz'
  Content type 'application/x-gzip' length 537153 bytes (524 Kb)
  opened URL
  ==================================================
  downloaded 524 Kb
  
  * installing *source* package ‘rJava’ ...
  ** package ‘rJava’ successfully unpacked and MD5 sums checked
  checking for gcc... gcc -std=gnu99
  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 -std=gnu99 accepts -g... yes                                                                                                                                                                                                                              
  checking for gcc -std=gnu99 option to accept ISO C89... none needed                                                                                                                                                                                                            
  checking how to run the C preprocessor... gcc -std=gnu99 -E                                                                                                                                                                                                                    
  checking for grep that handles long lines and -e... /usr/bin/grep                                                                                                                                                                                                              
  checking for egrep... /usr/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 -std=gnu99 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-1.6.0-sun-1.6.0/jre/../include -I/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/../include/linux'                                                                                                                                                    
  java libs   : '-L/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/lib/i386/client -L/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/lib/i386 -L/usr/lib/jvm/java-1.6.0-sun-1.6.0/jre/../lib/i386 -L/usr/java/packages/lib/i386 -L/lib -L/usr/lib -ljvm'
  checking whether JNI programs can be compiled... yes
  checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
  ERROR: configuration failed for package ‘rJava’
  * removing ‘/home/admin/R/i686-pc-linux-gnu-library/2.14/rJava’
  
  The downloaded packages are in
          ‘/tmp/RtmpIFKEha/downloaded_packages’
  Warning message:
  In install.packages("rJava") :
    installation of package ‘rJava’ had non-zero exit status
  &gt; 
  </code></pre>
  
  <p>New error line:</p>
  
  <p><strong>checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.</strong></p>
  
  <p>I did run the <code>R CMD javareconf</code> as <code>root</code>. It leaves the cpp flags field empty. I know that this is one reason why it is failing, but don't know how to resolve it.</p>
  
  <p>I have tried this install command with dependencies=TRUE option and by specifying repo explicitly as well (e.g. repo="blah blah"). Nothing worked.</p>
  
  <p>I don't know how to do an update for the OpenSUSE. But it looks like there is no simple way to do it for SUSE, unlike for Ubuntu, for which steps are clearly given <a href="http://cran.r-project.org/bin/linux/ubuntu/README.html" rel="nofollow noreferrer">here</a>.</p>
  
  <p>Any help is appreciated. </p>