type=page
status=published
title=add-library
next=add-resources.html
prev=manvol1.html
~~~~~~

= add-library

[[add-library-1]][[GSRFM00818]][[add-library]]

== add-library

Adds one or more library JAR files to {productName}

[[sthref7]]

=== Synopsis

[source]
----
asadmin [asadmin-options] add-library [--help]
[--type={common|ext|app}] [--upload={false|true}]
library-file-path [library-file-path ... ]
----

[[sthref8]]

=== Description

The `add-library` subcommand adds one or more library archive files to
{productName}.

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

The library-file-path operand is the path to the JAR file that contains
the library to be added. To specify multiple libraries, specify multiple
paths separated by spaces.

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

This subcommand is supported in remote mode only.

[[sthref9]]

=== 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 to
  which the library is added. Valid values are as follows:
  `common`;;
    Adds the library files to the Common class loader directory,
    domain-dir``/lib``. This is the default.
  `ext`;;
    Adds the library files to the Java optional package directory,
    domain-dir``/lib/ext``.
  `app`;;
    Adds the library files to 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 {productName} Application Development Guide.

`--upload`::
  Specifies whether the subcommand uploads the file to the DAS. In most
  situations, this option can be omitted.
  Valid values are as follows:
  `false`;;
    The subcommand does not upload the file and attempts to access the
    file through the specified file name. If the DAS cannot access the
    file, the subcommand fails. +
    For example, the DAS might be running as a different user than the
    administration user and does not have read access to the file. In
    this situation, the subcommand fails if the `--upload` option is `false`.
  `true`;;
    The subcommand uploads the file to the DAS over the network connection.

+
The default value depends on whether the DAS is on the host where the
subcommand is run or is on a remote host.

* If the DAS is on the host where the subcommand is run, the default is `false`.
* If the DAS is on a remote host, the default is `true`.
+
If a directory filepath is specified, this option is ignored.

[[sthref10]]

=== Operands

library-file-path::
  The paths to the archive files that contain the libraries that are to
  be added. You can specify an absolute path or a relative path. +
  If the `--upload` option is set to `true`, this is the path to the
  file on the local client machine. If the `--upload` option is set to
  `false`, this is the path to the file on the server machine.

[[sthref11]]

=== Examples

[[GSRFM824]][[sthref12]]

==== Example 1   Adding Libraries

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

[source]
----
asadmin> add-library --type app /tmp/mylib.jar
Command add-library executed successfully.
----

[[sthref13]]

=== Exit Status

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

[[sthref14]]

=== See Also

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

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

"link:application-development-guide/class-loaders.html#GSDVG00003[Class Loaders]" in {productName} Application Development Guide


