# JAR structure

> JAR structure - Review the structure of the downloadable Scoring Code JAR package.

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-04-24T16:03:56.622734+00:00` (UTC).

## Primary page

- [JAR structure](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html): Full documentation for this topic (HTML).

## Sections on this page

- [Root directory](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#root-directory): In-page section heading.
- [com.github.fommil package](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#comgithubfommil-package): In-page section heading.
- [drmodel_ID package](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#drmodel_id-package): In-page section heading.
- [com.datarobot.prediction package](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#comdatarobotprediction-package): In-page section heading.
- [com.datarobot.prediction.drpackage](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#comdatarobotpredictiondr-package): In-page section heading.
- [com.datarobot.prediction.drmatrix package](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#comdatarobotpredictiondrmatrix-package): In-page section heading.
- [com.datarobot.prediction.engine and com.datarobot.prediction.io packages](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#comdatarobotpredictionengine-and-comdatarobotpredictionio-packages): In-page section heading.
- [Differences between source and binary JARs](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/jar-package.html#differences-between-source-and-binary-jars): In-page section heading.

## Related documentation

- [Classic UI documentation](https://docs.datarobot.com/en/docs/classic-ui/index.html): Linked from this page.
- [Predictions](https://docs.datarobot.com/en/docs/classic-ui/predictions/index.html): Linked from this page.
- [Portable prediction methods](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/index.html): Linked from this page.
- [Scoring Code](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/index.html): Linked from this page.
- [Backward-compatible Java API](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/java-back-compat.html): Linked from this page.
- [scoring tool](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/scoring-cli.html): Linked from this page.

## Documentation content

# JAR structure

Once you have downloaded the Scoring Code JAR package to your machine, you'll see that it has a well-organized structure:

## Root directory

The root directory contains a set of `.so` and `.jnilib` files. These contain compiled Java Native Interface code for LAPACK and BLAS libraries. When a JAR is launched, it first attempts to locate these libraries in the OS. If located, model scoring is greatly speeded up. If the libraries are not located, Scoring Code falls back to a slower Java implementation.

### com.github.fommil package

The `com.github.fommil` package contains the Java-side of LAPACK and BLAS native interfaces.

### drmodel_ID package

The `drmodel_ID` package contains a set of binary files with parameters for individual nodes of a DataRobot model (blueprint). While these parameters are not human-readable, you can still get their values by debugging `readParameters(DRDataInputStream dis)` methods inside of classes that implement nodes of the model. These classes are located inside of the `om.datarobot.prediction.dr<model_ID>` package.

### com.datarobot.prediction package

The `com.datarobot.prediction` package contains commonly used Java interfaces inside of a Scoring Code JAR. To maintain backward compatibility, it contains both current and deprecated versions of the interfaces. The deprecated interfaces are Predictor, MulticlassPredictor, and Row.

### com.datarobot.prediction.dr package

The `com.datarobot.prediction.dr<model_ID>` package contains the classes that implement the model (blueprint) as well as some utility code.

To understand the model, start with the `BP.java` class. This class manages data flow through the model. The raw data comes into the `DP.java` class where feature conversion and transformation operations take place. Then, the preprocessed data goes into each one of `V<number>` classes where actual steps of model execution take place. All of these classes use three main utility classes:

- BaseDataStructuredefines a unified container for data.
- DRDataInputStreamreads binary parameters from the packagedr<model_ID>.
- BaseVertexcontains actual implementations of machine learning algorithms and utility functions.
- DRModeldefines the low-level implementation of a model API. The classesRegressionPredictorImplandClassificationPredictorImplare top-level APIs built on top ofDRModel. It is highly recommended that you use these classes instead of usingDRModeldirectly. More information about these interfaces can be found in the javadoc (linked from theDownloadstab) and in the sectionBackward-compatible Java API.

### com.datarobot.prediction.drmatrix package

The `com.datarobot.prediction.drmatrix` package contains implementations of common matrix operations on dense and sparse matrices.

### com.datarobot.prediction.engine and com.datarobot.prediction.io packages

The `com.datarobot.prediction.engine` and `com.datarobot.prediction.io` packages contain high-performance scoring logic that enables each Scoring Code JAR to be used as a command line [scoring tool](https://docs.datarobot.com/en/docs/classic-ui/predictions/port-pred/scoring-code/scoring-cli.html) for CSV files.

## Differences between source and binary JARs

The following table describes the differences between the source and binary download options.

| Files | Binary .jar | Source .jar |
| --- | --- | --- |
| Native .so and jnilib files for BLAS and LAPAC libraries | Yes | No |
| com.github.fommil for BLAS and LAPAC libraries | Yes | No |
| dr<model_ID> (binary parameters for nodes of the model) | Yes | Yes |
| com.datarobot.prediction | Yes | No |
| com.datarobot.prediction.drmodel_ID | Yes | Yes |
| com.datarobot.prediction.drmatrix | Yes | No |
| com.datarobot.prediction.engine | Yes | No |
| com.datarobot.prediction.io | Yes | No |

DataRobot provides “source” .jar files for downloading to simplify the process of model inspection. By using the “source” download option, you get only the code that directly implements the model. It is the same code as the “binary” .jar, but stripped of all of the dependencies.
