Skip to content

R package with Java source code

7 messages · Adrian Trapletti, Duncan Murdoch, Brian Ripley +1 more

#
Dear All,

Are there any plans around that "R CMD INSTALL 
some_package_containing_java_source code" supports Java source code 
compiling in future versions of R similar to compiling C/C++ and/or 
Fortran sources in the src directory?

Best regards
Adrian
#
On 13-04-16 7:20 AM, Adrian Trapletti wrote:
None that I know of.  You can do it already (using your own Makevars or 
Makefile) but you will run into trouble on systems that don't have the 
Java compiler installed, e.g. Windows systems typically don't.

Duncan Murdoch
#
On 16/04/2013 12:20, Adrian Trapletti wrote:
No.  A Java 'compiler' is not required, but if one is available is it is 
set in etc/Makeconf as JAVAC.

There are many packages which ship jar files with 'compiled' Java code, 
and others with .class files.  It is hard to see a case for compiling at 
install time rather than when preparing the package.  But it would be 
easy to write a suitable rule in src/Makevars.

Note that most systems will not have a JDK, only a JRE.  That includes 
Windows systems, but winbuilder should be able to prepare a binary 
package (it needs a JDK to install rJava, JavaJD ...).

One needs to be slightly careful with Java version requirements.  AFAIR 
OS X Leopard systems only had 1.5 (at least for one of the 
architectures) and R 2.15.x still supported Leopard (and packages are 
still being built for it).  Systems with Java 1.6 aka 6 are still in 
widespread use, even if it past end-of-life according to Oracle.
#
I don't really like the approach which ship the redundant jar files 
unless it is a "precompiled binary" distribution of a package.

In the meantime I found the following suggestion 
http://romainfrancois.blog.free.fr/index.php?post/2009/03/26/Hello-Java-World 
which is close to what I was thinking of.

Anyhow thanks for the comments.

Best regards
Adrian
On 04/16/2013 01:44 PM, Prof Brian Ripley wrote:

  
    
#
On Apr 16, 2013, at 9:56 AM, Adrian Trapletti wrote:

            
What do you mean by "redundant"? Your package won't work without them ...
Well, that's in essence what has been suggested. The point is that *you* have to run build before you publish the package to create the jar file, it can't be done at install time for reasons explained.

Cheers,
Simon
#
On 04/16/2013 04:42 PM, Simon Urbanek wrote:
jars are often not under version control because of their redundancy and 
all the resulting problems.
:-) yes, I know this (> 20 years of experience with Java, slightly less 
with R).
My question was not very precise. In fact I wanted to ask about Java 
source code compilation during the build step.

Best regards
Adrian

  
    
#
On Apr 16, 2013, at 11:35 AM, Adrian Trapletti wrote:

            
Yes, you certainly don't want them under version control - you said yourself "ship" which is the built source tar ball, not your repository ;).
Yes. Given that this is done under your control, there is not much support you need from R. The preferred setup is very individual (e.g. I avoid ant in my Java packages), so I don't think it's R's place to step in at that stage. I did consider adding some primitives, but given the individuality I just opted for conventions (like inst/java as a distribution place).

Cheers,
Simon