Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## Class RJavaClassLoader

    java.lang.Object
      java.lang.ClassLoader
          java.security.SecureClassLoader
              java.net.URLClassLoader
                  RJavaClassLoader

    public class RJavaClassLoader

extends java.net.URLClassLoader

Class loader used internally by rJava The class manages the class paths and the native libraries (jri, ...)

Field Summary
`static RJavaClassLoader` | `primaryLoader` singleton
`boolean` | `useSystem` Should the system class loader be used to resolve classes as well as this class loader
`static boolean` | `verbose` Print debug messages if is set to `true`

Constructor Summary
`RJavaClassLoader(java.lang.String path, java.lang.String libpath)` Constructor.

Method Summary
`void` | `addClassPath(java.lang.String cp)` adds an entry to the class path
`void` | `addClassPath(java.lang.String[] cp)` adds several entries to the class path
`void` | `addRLibrary(java.lang.String name, java.lang.String path)` add a library to path mapping for a native library
`void` | `bootClass(java.lang.String cName, java.lang.String mName, java.lang.String[] args)` Boots the specified method of the specified class
`protected java.lang.Class` | `findClass(java.lang.String name)`
`protected java.lang.String` | `findLibrary(java.lang.String name)`
`java.net.URL` | `findResource(java.lang.String name)`
`java.lang.String[]` | `getClassPath()`
`static RJavaClassLoader` | `getPrimaryLoader()` Returns the singleton instance of RJavaClassLoader
`static void` | `main(java.lang.String[] args)` main method This uses the system properties: `rjava.path` : path of the rJava package `rjava.lib` : lib sub directory of the rJava package `main.class` : main class to "boot", assumes Main if not specified `rjava.class.path` : set of paths to populate the initiate the class path and boots the "main" method of the specified `main.class`, passing the args down to the booted class This makes sure R and rJava are known by the class loader
`static void` | `setDebug(int level)` Set the debug level.
`static byte[]` | `toByte(java.lang.Object object)` Serialize an object to a byte array.
`java.lang.Object` | `toObject(byte[] byteArray)` Deserialize an object from a byte array.
`static java.lang.Object` | `toObjectPL(byte[] byteArray)` converts the byte array into an Object using the primary RJavaClassLoader
`static java.lang.String` | `u2w(java.lang.String fn)` Utility to convert paths for windows.

Methods inherited from class java.net.URLClassLoader
`addURL, definePackage, findResources, getPermissions, getURLs, newInstance, newInstance`

Methods inherited from class java.security.SecureClassLoader
`defineClass, defineClass`

Methods inherited from class java.lang.ClassLoader
`clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### primaryLoader

    public static RJavaClassLoader primaryLoader

  singleton

### verbose

    public static boolean verbose

  Print debug messages if is set to `true`

### useSystem

    public boolean useSystem

  Should the system class loader be used to resolve classes as well as this class loader

Constructor Detail

### RJavaClassLoader

    public RJavaClassLoader(java.lang.String path,
                            java.lang.String libpath)

  Constructor. The first time an RJavaClassLoader is created, it is cached as the primary loader.

  Parameters:
    `path` - path of the rJava package
    `libpath` - lib sub directory of the rJava package

Method Detail

### getPrimaryLoader

    public static RJavaClassLoader getPrimaryLoader()

  Returns the singleton instance of RJavaClassLoader

### findClass

    protected java.lang.Class findClass(java.lang.String name)
                                 throws java.lang.ClassNotFoundException

  Overrides:
    `findClass` in class `java.net.URLClassLoader`
  Throws:
    `java.lang.ClassNotFoundException`

### findResource

    public java.net.URL findResource(java.lang.String name)

  Overrides:
    `findResource` in class `java.net.URLClassLoader`

### addRLibrary

    public void addRLibrary(java.lang.String name,
                            java.lang.String path)

  add a library to path mapping for a native library

### addClassPath

    public void addClassPath(java.lang.String cp)

  adds an entry to the class path

### addClassPath

    public void addClassPath(java.lang.String[] cp)

  adds several entries to the class path

### getClassPath

    public java.lang.String[] getClassPath()

  Returns:
    the array of class paths used by this class loader

### findLibrary

    protected java.lang.String findLibrary(java.lang.String name)

  Overrides:
    `findLibrary` in class `java.lang.ClassLoader`

### bootClass

    public void bootClass(java.lang.String cName,
                          java.lang.String mName,
                          java.lang.String[] args)
                   throws java.lang.IllegalAccessException,
                          java.lang.reflect.InvocationTargetException,
                          java.lang.NoSuchMethodException,
                          java.lang.ClassNotFoundException

  Boots the specified method of the specified class

  Parameters:
    `cName` - class to boot
    `mName` - method to boot (typically main). The method must take a String[] as parameter
    `args` - arguments to pass to the method
  Throws:
    `java.lang.IllegalAccessException`
    `java.lang.reflect.InvocationTargetException`
    `java.lang.NoSuchMethodException`
    `java.lang.ClassNotFoundException`

### setDebug

    public static void setDebug(int level)

  Set the debug level. At the moment, there is only verbose (level>0) or quiet

  Parameters:
    `level` - debug level. verbose (>0), quiet otherwise

### u2w

    public static java.lang.String u2w(java.lang.String fn)

  Utility to convert paths for windows. Converts / to the path separator in use

  Parameters:
    `fn` - file name

### main

    public static void main(java.lang.String[] args)

  main method

  This uses the system properties:

  - `rjava.path` : path of the rJava package
  - `rjava.lib` : lib sub directory of the rJava package
  - `main.class` : main class to "boot", assumes Main if not specified
  - `rjava.class.path` : set of paths to populate the initiate the class path

  and boots the "main" method of the specified `main.class`, passing the args down to the booted class

  This makes sure R and rJava are known by the class loader

### toByte

    public static byte[] toByte(java.lang.Object object)
                         throws java.lang.Exception

  Serialize an object to a byte array. (code by CB)

  Parameters:
    `object` - object to serialize
  Returns:
    byte array that represents the object
  Throws:
    `java.lang.Exception`

### toObject

    public java.lang.Object toObject(byte[] byteArray)
                              throws java.lang.Exception

  Deserialize an object from a byte array. (code by CB)

  Parameters:
    `byteArray` -
  Returns:
    the object that is represented by the byte array
  Throws:
    `java.lang.Exception`

### toObjectPL

    public static java.lang.Object toObjectPL(byte[] byteArray)
                                       throws java.lang.Exception

  converts the byte array into an Object using the primary RJavaClassLoader

  Throws:
    `java.lang.Exception`

Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD