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.
- License the capabilities you included in the app. Refer to the License levels and capabilities topic to determine the license level you require, and to the Get a license topic to learn how to acquire a license.
- Esri and data attribution requirements.
- If you deploy content or services from ArcGIS location services, see the FAQ topic in the Mapping and location services guide.
Esri and data attribution requirements
When you use Esri technology, you must include Esri attribution and data attribution. This includes applications that use any ArcGIS API, SDK, service, content, or data. The attribution is required for applications that either contain a map or do not contain a map. These requirements are outlined in detail in Esri and data attribution.
Create a deployment
This topic guides you through the process of deploying your application to your end user machines.
-
Create a new directory you'll use to build the application deployment.
-
Compile your application as a runnable
.jar
file and place the file in the directory you created above. -
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.
Directory Content purpose jniLibs/LX64 binaries for 64bit Linux jniLibs/MACOS/aarch64 binaries for Mac OS X on M1 or M2 jniLibs/MACOS/x64 binaries for Mac OS X on x64 jniLibs/MACOS/shaders Metal shaders (shared with x64 and M1/M2) jniLibs/WIN64 binaries for 64bit Windows resources/network_analyst Network Analyst resources for closest facility and routing tasks resources/pedata data for grid based transformations
See note below for download informationlocalserver100.14/64 binaries 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.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder 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:
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:
// exclude signing files that come from dependencies
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"