list-jvm-options(1)       asadmin Utility Subcommands      list-jvm-options(1)

NAME
       list-jvm-options - lists options for the Java application launcher

SYNOPSIS
           list-jvm-options [--help] [--target target]
           [--profiler={false|true}]

DESCRIPTION
       The list-jvm-options subcommand displays a list of command-line options
       that are passed to the Java application launcher when GlassFish Server
       is started.

       The options are managed by using the JVM Options page of the
       Administration Console or by using the create-jvm-options and
       delete-jvm-options subcommands.

       This subcommand is supported in remote mode only.

OPTIONS
       --help, -?
           Displays the help text for the subcommand.

       --target
           Specifies the target for which you are listing Java application
           launcher options.

           Valid values are as follows:

           server
               Specifies the DAS (default).

           instance-name
               Specifies a GlassFish Server instance.

           cluster-name
               Specifies a cluster.

           configuration-name
               Specifies a named configuration.

       --profiler
           Specifies whether the Java application launcher options to list are
           for the profiler. Set this option to true only if a profiler has
           been configured. If this option is set to true and no profiler is
           configured, an error occurs. The default is false.

EXAMPLES
       Example 1, Listing the Java Application Launcher Options
           This example lists the options that are used by the Java
           application launcher.

               asadmin> list-jvm-options
               -Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf
               -XX: LogVMOutput
               -XX: UnlockDiagnosticVMOptions
               -Dcom.sun.enterprise.config.config_environment_factory_class=
               com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory
               -Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks
               -XX:NewRatio=2
               -DANTLR_USE_DIRECT_CLASS_LOADING=true
               -Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy
               -Djdbc.drivers=org.apache.derby.jdbc.ClientDriver
               -Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks
               -client
               -Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${
               com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}
               /lib/ext${path.separator}${com.sun.aas.derbyRoot}/lib
               -Xmx512m
               -XX:MaxPermSize=192m
               -XX:LogFile=${com.sun.aas.instanceRoot}/logs/jvm.log
               Command list-jvm-options executed successfully.

EXIT STATUS
       0
           subcommand executed successfully

       1
           error in executing the subcommand

SEE ALSO
       create-jvm-options(1), delete-jvm-options(1)

       asadmin(1M)

       For more information about the Java application launcher, see the
       reference page for the operating system that you are using:

       *   Oracle Solaris and Linux: java - the Java application launcher
           (http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/java.html)

       *   Windows: java - the Java application launcher
           (http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html)

Java EE 8                         21 Aug 2017              list-jvm-options(1)
