ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

This manual page is associated with the Mac OS X developer tools. The software or headers described may not be present on your Mac OS X installation until you install the developer tools package. This package is available on your Mac OS X installation DVD, and the latest versions can be downloaded from developer.apple.com.

For more information about the manual page format, see the manual page for manpages(5).



rmic(1)                                                                                              rmic(1)



NAME
       rmic - Java RMI stub compiler

SYNOPSIS
       rmic [ options ] package-qualified-class-names

DESCRIPTION
       The  rmic  compiler  generates  stub  and skeleton class files (JRMP protocol) and stub and tie class
       files (IIOP protocol) for remote objects. These class files are generated from compiled Java program-ming programming
       ming  language  classes that are remote object implementation classes.  A remote implementation class
       is a class that implements the interface java.rmi.Remote. The classes named in the rmic command  must
       be  for  classes that have been compiled successfully with the javac(1) command and be fully package-qualified. packagequalified.
       qualified.  For example, running rmic on the class file name HelloImpl as shown here:

              rmic hello.HelloImpl

       creates the HelloImpl_Stub.class file in the hello subdirectory (named for the class's package).

       A skeleton for a remote object is a JRMP protocol server-side entity has  a  method  that  dispatches
       calls to the remote object implementation.

       A  tie for a remote object is a server-side entity similar to a skeleton, but which communicates with
       the client using the IIOP protocol.

       A stub is a proxy for a remote object that is responsible for forwarding method invocations on remote
       objects to the server where the actual remote object implementation resides.  A client's reference to
       a remote object is actually a reference to a local stub.

       By default, rmic generates stub classes that use the 1.2 JRMP stub protocol version only, as  if  the
       -v1.2  option had been specified. (Note that the -vcompat option was the default in releases prior to
       1.5.) Use the -iiop option to generate stub and tie classes for the IIOP protocol.

       The stub implements only the remote interfaces, not local interfaces also implemented by  the  remote
       object. Because the stub implements exactly the same set of remote interfaces as the remote object, a
       client can use the Java language's built-in operators for casting and type-checking.  For  IIOP,  the
       PortableRemoteObject.narrow method must be used.

OPTIONS
       -bootclasspath path
                      Overrides location of bootstrap class files.

       -classpath path
                      Specifies  the  path  rmic uses to look up classes.  Setting this option overrides the
                      default or the CLASSPATH environment variable.  Directories are separated  by  colons.
                      Thus, the general format for path is:

                           .:<your_path>

                      For example:

                           .:/usr/local/java/classes

       -d directory   Specifies the root directory of the class hierarchy.  You can use this option to spec-ify specify
                      ify a destination directory for the stub, skeleton, and tie files.  For  example,  the
                      command

            rmic -d /java/classes foo.MyClass

       would  place the stub and skeleton classes derived from MyClass into the directory /java/classes/foo.
       If the -d option is not specified, the default behavior is as if "-d ."  were specified: the  package
       hierarchy  of  the  target class is created in the current directory, and stub/tie/skeleton files are
       placed within it. (Note that in some previous versions of rmic, if -d was  not  specified,  then  the
       package  hierarchy  was  not created, and all of the output files were placed directly in the current
       directory.)

       -extdirs path  Overrides location of installed extensions.

       -g             Enables generation  of  all  debugging  information,  including  local  variables.  By
                      default, only line number information is generated.

       -idl           Causes  rmic to generate OMG IDL for the classes specified and any classes referenced.
                      IDL provides a purely declarative, programming language-independent way of  specifying
                      an  object's API.  The IDL is used as a specification for methods and data that can be
                      written in and invoked from any language that provides CORBA bindings.  This  includes
                      Java and C++ among others.  When the -idl option is used, other options also include:

                      -always or -alwaysgenerate
                           Forces  re-generation  even when existing stubs/ties/IDL are newer than the input
                           class.
                      -factory
                           Uses factory keyword in generated IDL.
                      -idlModule fromJavaPackage[.class] toIDLModule
                           Specifies IDLEntity package mapping.  For example:

                                -idlModule foo.bar
                                my::real::idlmod.

                      -idlFile fromJavaPackage[.class] toIDLFile
                           Specifies IDLEntity file mapping.  For example:

                                -idlFile test.pkg.X TEST16.idl

       -iiop          Causes rmic to generate IIOP stub and tie classes, rather than JRMP stub and  skeleton
                      classes.   A stub class is a local proxy for a remote object and is used by clients to
                      send calls to a server.  Each remote interface requires a stub class, which implements
                      that  remote  interface.  A client's reference to a remote object is actually a refer-ence reference
                      ence to a stub.  Tie classes are used on the server side to process incoming calls and
                      dispatch  the  calls  to  the  proper implementation class.  Each implementation class
                      requires a tie class.

                      Invoking rmic with -iiop generates stubs and ties that conform to this naming  conven-tion: convention:
                      tion:

                           _<implementationName>_stub.class

                           _<interfaceName>_tie.class

                      When the -iiop option is used, other options also include:

                      -always or -alwaysgenerate
                           Forces  re-generation  even when existing stubs/ties/IDL are newer than the input
                           class.
                      -nolocalstubs
                           Does not create stubs optimized for same-process clients and servers.
                      -noValueMethods
                           Must be used with the -idl option.  Prevents addition of  valuetype  methods  and
                           initializers  to  emitted  IDL.   These methods and initializers are optional for
                           valuetypes and are generated unless the -noValueMethods option is specified  when
                           using the -idl option.
                      -poa
                           Changes    the    inheritance   from   org.omg.CORBA_2_3.portable.ObjectImpl   to
                           org.omg.PortableServer.Servant.
                           The PortableServer module for the  Portable  Object  Adapter  (POA)  defines  the
                           native Servant type. In the Java programming language, the Servant type is mapped
                           to the Java org.omg.PortableServer.Servant class. It server as the base class for
                           all  POA  servant  implementation  and  provides  a number of methods that may be
                           invoked by the application programmer, as well as methods which  are  invoked  by
                           the  POA  itself  and may be overridden by the user to control aspects of servant
                           behavior. Based on the OMG IDL to Java Language  Mapping  Specfication,  CORBA  V
                           2.3.1 ptc/00-01-08.pdf.




                      -Joption
                           Pass option to the Java virtual machine, where option is one of the
                           options  described  on  the  man  page  for  the  java  application
                           launcher,  java(1).  For example, -J-Xms48m sets the startup memory
                           to 48 megabytes. It is a common convention for -J to  pass  options
                           to the underlying virtual machine.

       -keepgenerated Retains  the generated .java source files for the stub, skeleton, and/or
                      tie classes and writes them to the same directory as the .class files

       -nowarn        Turns off warnings. If used, the compiler does not print warnings.

       -vcompat       Generates stub and skeleton classes compatible with both the 1.1 and 1.2
                      JRMP  stub  protocol  versions. (This option was the default in releases
                      prior to 1.5.) The generated stub classes will use the 1.1 stub protocol
                      version  when  loaded  in a JDK 1.1 virtual machine and will use the 1.2
                      stub protocol version when loaded into a 1.2 (or later) virtual machine.
                      The generated skeleton classes will support both 1.1 and 1.2 stub proto-col protocol
                      col versions. The generated classes are relatively  large  in  order  to
                      support both modes of operation.

       -verbose       Causes  the  compiler  and  linker to display messages about the classes
                      being compiled and what class files being loaded.

       -v1.1          Creates stubs and skeletons for JDK  1.1  stub  protocol  version  only.
                      Note  that  this  option is only useful for generating stub classes that
                      are serialization-compatible with pre-existing, statically-deployed stub
                      classes  that were generated by the rmic tool from JDK 1.1 and that can-not cannot
                      not be upgraded (and dynamic class loading is not being used).

       -v1.2          (default) Generates stub classes for the 1.2 JRMP stub protocol  version
                      only.  No skeleton classes are generated with this option because skele-ton skeleton
                      ton classes are not used with the 1.2 stub protocol version. The  gener-ated generated
                      ated  stub  classes will not work if they are loaded into a JDK 1.1 vir-tual virtual
                      tual machine.

ENVIRONMENT VARIABLES
       CLASSPATH      Used to provide the system with a path to user-defined classes.   Direc-tories Directories
                      tories are separated by colons.  For example,

                           .:/usr/local/java/classes

SEE ALSO
       java(1), javac(1) CLASSPATH



                                                23 June 2004                                         rmic(1)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.