# Libraries provided by Derby

This section shows the different libraries (modules) used by Derby and their purposes.

The following table shows the Derby shared library. This module is required by all Derby configurations.

Table 1. Engine library
Library Name | Use
--- | ---
`derbyshared.jar` | This module is required by all configurations, regardless of whether you are running an embedded engine, a network server, a remote client, or the database tools.

The following table shows the Derby engine library.

Table 2. Engine library
Library Name | Use
--- | ---
`derby.jar` | For embedded databases. You always need this library for embedded environments. For client/server environments, you only need this library on the server.

For embedded environments, you need another module in the classpath/modulepath in order to use the tools. For a client/server environment, you need that library on the client only. The following table shows the tools module.

Table 3. Tools libraries
Library Name | Use
--- | ---
`derbytools.jar` | Required for running all the Derby tools (such as `ij`, `dblook`, and import/export). This module is also required if you are running a network server. This module is also required if your application directly references the JDBC drivers.
`derbyrun.jar` | Executable jar file that can be used to start the Derby tools.

The following table shows the Derby Network Server library. You need this module as well as the shared, engine, and tools modules.

Table 4. Network Server library
Library Name | Use
--- | ---
`derbynet.jar` | Required to start the Derby Network Server.

The following table shows the Derby network client library.

Table 5. Network client library
Library Name | Use
--- | ---
`derbyclient.jar` | Required to use the Derby network client driver.

The following table shows the Derby locale libraries.

Table 6. Locale libraries
Library Name | Use
--- | ---
`derbyLocale_cs.jar` | Required to provide translated messages for the Czech locale.
`derbyLocale_de_DE.jar` | Required to provide translated messages for the German locale.
`derbyLocale_es.jar` | Required to provide translated messages for the Spanish locale.
`derbyLocale_fr.jar` | Required to provide translated messages for the French locale.
`derbyLocale_hu.jar` | Required to provide translated messages for the Hungarian locale.
`derbyLocale_it.jar` | Required to provide translated messages for the Italian locale.
`derbyLocale_ja_JP.jar` | Required to provide translated messages for the Japanese locale.
`derbyLocale_ko_KR.jar` | Required to provide translated messages for the Korean locale.
`derbyLocale_pl.jar` | Required to provide translated messages for the Polish locale.
`derbyLocale_pt_BR.jar` | Required to provide translated messages for the Brazilian Portuguese locale.
`derbyLocale_ru.jar` | Required to provide translated messages for the Russian locale.
`derbyLocale_zh_CN.jar` | Required to provide translated messages for the Simplified Chinese locale.
`derbyLocale_zh_TW.jar` | Required to provide translated messages for the Traditional Chinese locale.

To summarize, the following table shows the libraries (modules) which are required for each Derby configuration.

Table 7. Required libraries
Configuration | Required modules
--- | ---
`Remote client` | derbyclient.jar, derbyshared.jar
`Embedded engine` | derby.jar, derbyshared.jar
`Network server` | derbynet.jar, derbytools.jar, derby.jar, derbyshared.jar
`Embedded tools` | derbytools.jar, derby.jar, derbyshared.jar
`Convenient startup` | derbyrun.jar, derbynet.jar, derbytools.jar, derby.jar, derbyshared.jar

Parent topic: Derby libraries and scripts: complete reference
Related reference
Scripts included with Derby