type=page
status=published
title=remove-library
next=restart-domain.html
prev=redeploy.html
~~~~~~

= remove-library

[[remove-library-1]][[GSRFM00820]][[remove-library]]

== remove-library

Removes one or more library JAR files from {productName}

[[sthref1970]]

=== Synopsis

[source]
----
asadmin [asadmin-options] remove-library [--help]
[--type={common|ext|app}]
library-name [library-name ... ]
----

[[sthref1971]]

=== Description

The `remove-library` subcommand removes one or more library JAR files
from {productName}.

The `--type` option specifies the library type and the {productName}
directory from which the library is removed.

The library-name operand is the name of the JAR file that contains the
library to be removed. To specify multiple libraries, specify multiple
names separated by spaces.

[NOTE]
====
The library archive file is removed from the DAS. For common and
extension libraries, you must restart the DAS so the library removals
are picked up by the server runtime. To remove the libraries from other
server instances, synchronize the instances with the DAS by restarting
them.

This command is not supported on the Windows operating system.
====

This subcommand is supported in remote mode only.

[[sthref1972]]

=== 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.
`--type`::
  Specifies the library type and the {productName} directory from
  which the library is removed. Valid values are as follows:

  `common`;;
    Removes the library files from the Common class loader directory,
    domain-dir`/lib`. This is the default.
  `ext`;;
    Removes the library files from the Java optional package directory,
    domain-dir`/lib/ext`.
  `app`;;
    Removes the library files from the application-specific class loader
    directory, domain-dir`/lib/applibs`.

+
For more information about these directories, see
  "link:../application-development-guide/class-loaders.html#GSDVG00003[Class Loaders]" in GlassFish Server Open Source
  Edition Application Development Guide.

[[sthref1973]]

=== Operands

library-name::
  The names of the JAR files that contain the libraries that are to be
  removed.

[[sthref1974]]

=== Examples

[[GSRFM832]][[sthref1975]]

==== Example 1   Removing Libraries

This example removes the library in the archive file `mylib.jar` from
the application-specific class loader directory on the default server
instance.

[source]
----
asadmin> remove-library --type app mylib.jar
Command remove-library executed successfully.
----

[[sthref1976]]

=== Exit Status

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

[[sthref1977]]

=== See Also

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

link:add-library.html#add-library-1[`add-library`(1)],
link:list-libraries.html#list-libraries-1[`list-libraries`(1)]

"link:../application-development-guide/class-loaders.html#GSDVG00003[Class Loaders]" in GlassFish Server Open Source
Edition Application Development Guide


