rmic(1)                                                   rmic(1)



NAME
       rmic - Java RMI stub compiler

SYNOPSIS
       rmic [ -bootclasspath path ] [ -classpath path ]
            [ -d directory ] [ -depend ] [ -extdirs path ] [ -g ]
            [ -idl ] [ -iiop ] [ -keepgenerated ] [ -J ]
            [ -nowarn ] [ -sourcepath path ] [ -vcompat ]
            [ -verbose ] [ -v1.1 ] [ -v1.2 ]
            package-qualified-class-names

DESCRIPTION
       The rmic compiler generates stub and skeleton class  files
       for  remote  objects  from  the names of compiled Java(tm)
       classes that contain  remote  object  implementations.   A
       remote   object  is  one  that  implements  the  interface
       java.rmi.Remote. The classes named  in  the  rmic  command
       must  have compiled successfully with the javac(1) command
       and be fully package-qualified.  For example, running rmic
       on the class file name HelloImpl as shown here:

              example% rmic hello.HelloImpl

       creates  the HelloImpl_Skel.class and HelloImpl_Stub.class
       files.

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

       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.  Therefore,  a  client's  reference  to  a remote
       object is actually a reference to a local stub.

       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  inter-
       faces as the remote object, a client can use the Java lan-
       guage's built-in operators for casting and  type-checking.

OPTIONS
       The following options are supported:

       -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  vari-
                      able.  Directories are separated by colons.
                      Thus, the general format for path is:

                           .:<your_path>

                      For example:

                           .:/Library/Java/Home/Extensions

       -d directory   Specifies the root directory of  the  class
                      hierarchy. If omitted, the root defaults to
                      the current directory.

       -depend        Causes the compiler  to  recompile  classes
                      referenced by other classes.  Normally, the
                      compiler only recompiles missing or out-of-
                      date  classes referred to from source code.

       -extdirs path  Overrides location of installed extensions.

       -g             Enables  debugging table generation. Debug-
                      ging tables contain information about  line
                      numbers and local variables.  This informa-
                      tion is used by Java  debugging  tools.  By
                      default, only line numbers are generated.

       -idl           Causes  rmic  to  generate  OMG IDL for the
                      classes specified and  any  classes  refer-
                      enced.   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 bind-
                      ings.   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 exist-
                           ing 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 inter-
                      face  requires  a  stub class, which imple-
                      ments that remote  interface.   A  client's
                      reference  to a remote object is actually a
                      reference 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 con-
                      vention:

                           _<implementationName>_stub.class

                           _<interfaceName>_tie.class

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



























































                      -always or -alwaysgenerate
                           Forces  re-generation even when exist-
                           ing 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 gener-
                           ated unless the -noValueMethods option
                           is  specified  when  using  the   -idl
                           option.


       -J             Used  in  conjunction  with  the  -D
                      option, the  -J  option  passes  the
                      option   following   it  (no  spaces
                      between -J and -D) on  to  the  java
                      interpreter.

       -keepgenerated Retains  the  generated .java source
                      files for the stubs  and  skeletons.
                      If   the  -d  option  if  specified,
                      -keepgenerated writes  them  to  the
                      same  directory as the .class files.

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

       -sourcepath path
                      Specifies  where to find user source
                      files.

       -vcompat       Creates stubs and skeletons compati-
                      ble  with  both JDK 1.1 and 1.2 stub
                      protocoal versions (default).

       -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.

       -v1.2          Creates stubs for JDK 1.2 stub  pro-
                      tocol version only.

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

                           .:/Library/Java/Home/Extensions

SEE ALSO
       javac(1)

       See (or search java.sun.com) for the following:

       Setting the Classpath @
                 http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/class-
                 path.html



                           14 July 2000                   rmic(1)