---
layout: default
navsection: sdk
navmenu: Java
title: "Java SDK"
...
The Java SDK provides a generic set of wrappers so you can make API calls in java.
h3. Introdution
* The Java SDK requires Java 6 or later
* The Java SDK is implemented as a maven project. Hence, you would need a working
maven environment to be able to build the source code. If you do not have maven setup,
you may find the following link useful.
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
* In this document $ARVADOS_HOME is used to refer to the directory where
arvados code is cloned in your system. For ex: $ARVADOS_HOME = $HOME/arvados
h3. Setting up the environment
* The SDK requires a running Arvados API server. The information about the
API server needs to be passed to the SDK using environment variables or
during the construction of the Arvados instance.
* Below are the details about the environment variables and example setup
statements for a .bashrc file.
ARVADOS_API_TOKEN: API client token to be used to authorize with API server.
$ export ARVADOS_API_TOKEN=z40gplmla6i58rsg96jhg5u41ewdl5rj4g1py2s6e2lsc3
ARVADOS_API_HOST: Host name of the API server.
$ export ARVADOS_API_HOST=localhost:3001
ARVADOS_API_HOST_INSECURE: Set this to true if you are using self-signed
certificates and would like to bypass certificate validations.
$ export ARVADOS_API_HOST_INSECURE=true
h3. Building the Arvados SDK
$ cd $ARVADOS_HOME/sdk/java
$ mvn -Dmaven.test.skip=true clean package
This will generate arvados sdk jar file in the target directory
h3. Implementing your code to use SDK
$ARVADOS_HOME/sdk/java/ArvadosSDKJavaExample.java
serves as a sample
implementation using the SDK.
Please use this file to see how you would want use the SDK from your java program.
Also, refer to $ARVADOS_HOME/arvados/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
for more sample API invocation examples.
Below are the steps to compile and run this java program.
* ArvadosSDKJavaExample.java
creates an instance of Arvados SDK class and uses it to
make various call
requests.
* To compile ArvadosSDKJavaExample.java
$ javac -cp $ARVADOS_HOME/sdk/java/target/arvados-sdk-1.0-jar-with-dependencies.jar \
ArvadosSDKJavaExample.java
This results in the generation of the ArvadosSDKJavaExample.class file
in the same directory as the java file
* To run the sample
$ java -cp .:$ARVADOS_HOME/sdk/java/target/arvados-sdk-1.0-jar-with-dependencies.jar \
ArvadosSDKJavaExample
h3. Viewing and Managing SDK logging
* SDK uses log4j logging
* The default location of the log file is
$ARVADOS_HOME/sdk/java/log/arvados_sdk_java.log
* Update log4j.properties
file to change name and location of the log file.
$ nano $ARVADOS_HOME/sdk/java/src/main/resources/log4j.properties
and modify the log4j.appender.fileAppender.File
property as needed.
Rebuild the SDK:
$ mvn -Dmaven.test.skip=true clean package
h3. Using the SDK in eclipse
* To develop in eclipse, you can use the provided eclipse project
* Install m2eclipse
plugin in your eclipse
* Set M2_REPO
in eclipse to your .m2/repository
directory
* Open the SDK project in eclipse
File -> Import -> Existing Projects into Workspace -> Next -> Browse
and select $ARVADOS_HOME/sdk/java