Package 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

  Fields
  Modifier and Type
  Field
  Description
  `static final 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

  Constructors
  Constructor
  Description
  `ForkingSunRmic()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected boolean`
  `areIiopAndIdlSupported()`
  Whether the iiop and idl switches are supported.
  `boolean`
  `execute()`
  exec by creating a new command
  `protected 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 Details

  - ### COMPILER_NAME

    public static final String COMPILER_NAME
    the name of this adapter for users to select
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ForkingSunRmic

    public ForkingSunRmic()

- ## Method Details

  - ### areIiopAndIdlSupported

    protected boolean areIiopAndIdlSupported()
    Description copied from class: `DefaultRmicAdapter`
    Whether the iiop and idl switches are supported.

    This implementation returns false if running on Java 11 onwards and true otherwise.

    Overrides:
      `areIiopAndIdlSupported` in class `DefaultRmicAdapter`
    Returns:
      true if the iiop and idl switches are supported
    Since:
      Ant 1.10.3

  - ### 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 String getExecutableName()
    Override point.
    Returns:
      the executable name.