type=page
status=published
title=list-modules
next=list-network-listeners.html
prev=list-message-security-providers.html
~~~~~~

= list-modules

[[list-modules-1]][[GSRFM00185]][[list-modules]]

== list-modules

Lists {productName} modules

[[sthref1685]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-modules [--help]
----

[[sthref1686]]

=== Description

The `list-modules` subcommand displays a list of modules that are
accessible to the {productName} module subsystem. The version of
each module is shown.

This subcommand is supported in remote mode only.

[[sthref1687]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.

[[sthref1688]]

=== Examples

[[GSRFM685]][[sthref1689]]

==== Example 1   Listing {productName} Modules

This example provides a partial listing of modules that are accessible
to the {productName} module subsystem

[source]
----
asadmin> list-modules
List Of Modules

Module : org.glassfish.transaction.jts:3.0.0.b66
    Module Characteristics : List of Jars implementing the module
        Jar : file:/home/gfuser/GlassFish/glassfish7/glassfish/modules/jts.jar
    Module Characteristics : Provides to following services
    Module Characteristics : List of imported modules
        Imports : org.glassfish.transaction.jts:3.0.0.b66
Module : com.sun.enterprise.tiger-types-osgi:0.3.96
Module : org.glassfish.bean-validator:3.0.0.JBoss-400Beta3A
Module : org.glassfish.core.kernel:3.0.0.b66
    Module Characteristics : Provides to following services
    Module Characteristics : List of imported modules
        Imports : org.glassfish.core.kernel:3.0.0.b66
    Module Characteristics : List of Jars implementing the module
        Jar : file:/home/gfuser/GlassFish/glassfish7/glassfish/modules/kernel.jar
Module : org.glassfish.common.util:3.0.0.b66
    Module Characteristics : List of Jars implementing the module
        Jar : file:/home/gfuser/GlassFish/glassfish7/glassfish/modules/common-util.jar
    Module Characteristics : Provides to following services
    Module Characteristics : List of imported modules
        Imports : org.glassfish.common.util:3.0.0.b66
...
Command list-modules executed successfully
----

[[sthref1690]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1691]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:list-commands.html#list-commands-1[`list-commands`(1)],
link:list-components.html#list-components-1[`list-components`(1)],
link:list-containers.html#list-containers-1[`list-containers`(1)]


