ArcGIS Maps SDK for Java enables you to build mapping applications for Windows, macOS and Linux platforms. Follow the steps below to ensure you have licensed the capabilities that your app uses and that you understand associated costs.

Attribute Esri in your app

Esri requires that when you use an ArcGIS Online basemap, Esri data services, or Esri API technology in your app, you must also include Esri attribution. There are specific requirements for attribution that you may be required to address in your app depending on how your app is built and the data it uses. These requirements are outlined in detail in the Attribution in your app topic.

Create a deployment

This topic guides you through the process of deploying your application to your end user machines.

  1. Create a new directory you'll use to build the application deployment.

  2. Compile your application as a runnable .jar file and place the file in the directory you created above.

  3. Create directories called jniLibs and resources next to your runnable .jar and inside this you will need to selectively copy over the directories in your IDE project. The purpose of the files in each directory is explained below. From this you can decide which directories need to be deployed with your app.

    DirectoryContent purpose
    jniLibs/LX64binaries for 64bit Linux
    jniLibs/MACOS/aarch64binaries for Mac OS X on M1 or M2
    jniLibs/MACOS/x64binaries for Mac OS X on x64
    jniLibs/MACOS/shadersMetal shaders (shared with x64 and M1/M2)
    jniLibs/WIN64binaries for 64bit Windows
    resources/network_analystNetwork Analyst resources for closest facility and routing tasks
    resources/pedatadata for grid based transformations
    See note below for download information
    localserver100.14/64binaries for 64bit Local Server

Local Server

If your application uses Local Server functionality, you must also create a Local Server deployment to include with your deployed application. Refer to Deploy Local Server for more information about deploying Local Server for your Windows and Linux applications.

Apache HTTP5 dependency

The Apache HTTP 5 dependency also requires the use of the SLF4J (Simple Logging Facade for Java) library which will result in the following warnings in your console output when starting your application.

Use dark colors for code blocksCopy
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See for further details.

Please refer to the SLF4J documentation about this warning and how to prevent it.

If you are not using the logging, you could include the following dependency in your build script. The example below shows how this can be achieved with Gradle:

Use dark colors for code blocksCopy
dependencies {
    runtimeOnly 'org.slf4j:slf4j-jdk-platform-logging:2.0.9'

This Apache HTTP dependency will cause runtime errors if you deploy your application in a fat jar, as it is a signed library. If you are using a fat jar deployment, then you will need to exclude the signing files from within the application jar. In Gradle this can be achieved by adding the following to the jar task:

Use dark colors for code blocksCopy
// exclude signing files that come from dependencies
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.