jdk.rmic/sun.rmi.rmic.Main - "rmic" Command


How to run "rmic" command from JDK lib\modules JImage file?

✍: FYIcenter


"rmic" command allows you to run the RMI (Remote Method Invocation) compiler.

"rmic" command is supported by the jmods\jdk.rmic.jmod module file, which is also linked into the lib\modules JImage file in JDK 9, 10, and 11.

You can run the "rmic" command using the lib\modules JImage file as described below using JDK 11 as an example:

fyicenter> set JDK_HOME=\fyicenter\jdk-11.0.1

fyicenter> %JDK_HOME%\bin\java --module jdk.rmic/sun.rmi.rmic.Main

Usage: rmic <options> <class names>

where <options> includes:
  -keep          Do not delete intermediate generated source files
  -keepgenerated (same as "-keep")
  -v1.1          Create stubs/skeletons for 1.1 stub protocol version (deprecate
  -vcompat       Create stubs/skeletons compatible with both
                           1.1 and 1.2 stub protocol versions (deprecated)
  -v1.2          (default) Create stubs for 1.2 stub protocol version only (depr
  -iiop          Create stubs for IIOP. When present, <options> also includes:

                   -always           Create stubs even when they appear current
                   -alwaysgenerate   (same as "-always")
                   -nolocalstubs     Do not create stubs optimized for same proc

  -idl           Create IDL. When present, <options> also includes:

                   -noValueMethods   Do not generate methods for valuetypes
                   -always           Create IDL even when it appears current
                   -alwaysgenerate   (same as "-always")

  -g             Generate debugging info
  -nowarn        Generate no warnings
  -nowrite       Do not write compiled classes to the file system
  -verbose       Output messages about what the compiler is doing
  -classpath <path>      Specify where to find input class files
  -bootclasspath <path>  Override location of bootstrap class files
  -d <directory>         Specify where to place generated class files
  -J<runtime flag>       Pass argument to the java interpreter

Note that RMI (Remote Method Invocation) compiler has been removed from JDK 17.


jdk.rmic/sun.tools.javac.Main - Compiler Tool

jdk.jstatd/sun.tools.jstatd.Jstatd - "jstatd" Command

Tools Supported from JDK 9+ lib\modules JImage

⇑⇑ FAQ for JDK (Java Development Kit)

2020-01-21, 1553🔥, 0💬