# Create jar files for your application

Include any Java classes in a jar file that are intended for Derby class loading, except the following classes:

- The standard Java packages (java.*, `javax.*`)

  Derby does not prevent you from storing such a jar file in the database, but these classes are never loaded from the jar file.

- The classes that are supplied with your Java environment (for example, sun.*)

A running Derby system can load classes from any number of jar files from any number of schemas and databases.

Create jar files intended for Derby database class loading the same way you create a jar file for inclusion in a user's classpath. For example, consider an application targeted at travel agencies:

    jar cf travelagent.jar travelagent/*.class.

Various IDEs have tools to generate a list of contents for a jar file based on your application. If your application requires classes from other jar files, you have a choice:

- Extract the required third-party classes from their jar file and include only those classes in your jar file.

  Use this option when you need only a small subset of the classes in the third-party jar file.

- Store the third-party jar file in the database.

  Use this option when you need most or all of the classes in the third-party jar file, since your application and third-party logic can be upgraded separately.

- Deploy the third-party jar file in the user's class path.

  Use this option when the classes are already installed on a user's machine (for example, Objectspace's JGL classes).

Parent topic: Class loading overview
Next topic: Add the jar file or files to the database
Related concepts
Dynamic changes to jar files or to the database jar classpath
Signed jar files