## org.apache.tools.ant.taskdefs.rmic
Class ForkingSunRmic

    java.lang.Object
      org.apache.tools.ant.taskdefs.rmic.DefaultRmicAdapter
          org.apache.tools.ant.taskdefs.rmic.ForkingSunRmic

All Implemented Interfaces:
  RmicAdapter

Direct Known Subclasses:
  XNewRmic

    public class ForkingSunRmic

extends DefaultRmicAdapter

This is an extension of the sun rmic compiler, which forks rather than executes it inline. Why so? Because rmic is dog slow, but if you fork the compiler you can have multiple copies compiling different bits of your project at the same time. Which, on a multi-cpu system results in significant speedups. Also, Java1.6 behaves oddly with -XNew, so we switch it on here if needed.

Since:
  ant1.7

Field Summary
`static java.lang.String` `COMPILER_NAME` the name of this adapter for users to select

Fields inherited from class org.apache.tools.ant.taskdefs.rmic.DefaultRmicAdapter
`RMI_SKEL_SUFFIX, RMI_STUB_SUFFIX, RMI_TIE_SUFFIX, STUB_1_1, STUB_1_2, STUB_COMPAT, STUB_OPTION_1_1, STUB_OPTION_1_2, STUB_OPTION_COMPAT`

Constructor Summary
`ForkingSunRmic()`

Method Summary
`boolean` `execute()` exec by creating a new command
`protected java.lang.String` `getExecutableName()` Override point.

Methods inherited from class org.apache.tools.ant.taskdefs.rmic.DefaultRmicAdapter
`addStubVersionOptions, filterJvmCompilerArgs, getClasspath, getCompileClasspath, getMapper, getRmic, getSkelClassSuffix, getStubClassSuffix, getTieClassSuffix, logAndAddFilesToCompile, preprocessCompilerArgs, setRmic, setupRmicCommand, setupRmicCommand`

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

Field Detail

### COMPILER_NAME

    public static final java.lang.String COMPILER_NAME

  the name of this adapter for users to select

  See Also:
    Constant Field Values

Constructor Detail

### ForkingSunRmic

    public ForkingSunRmic()

Method Detail

### execute

    public boolean execute()
                    throws BuildException

  exec by creating a new command

  Returns:
    true if the command ran successfully
  Throws:
    `BuildException` - on error

### getExecutableName

    protected java.lang.String getExecutableName()

  Override point.

  Returns:
    the executable name.