--- layout: default navsection: sdk navmenu: Java SDK v1 title: "Installation" ... {% comment %} Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} The Java SDK v1 provides a low level API to call Arvados from Java. This is a legacy SDK. It is no longer used or maintained regularly. The "Arvados Java SDK v2":../java-v2/index.html should be used. 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 "Maven in 5 Minutes":http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html link useful. * 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 following information about the API server needs to be passed to the SDK using environment variables or during the construction of the Arvados instance. <notextile> <pre> ARVADOS_API_TOKEN: API client token to be used to authorize with API server. ARVADOS_API_HOST: Host name of the API server. ARVADOS_API_HOST_INSECURE: Set this to true if you are using self-signed certificates and would like to bypass certificate validations. </pre> </notextile> * Please see "api-tokens":{{site.baseurl}}/user/reference/api-tokens.html for full details. h3. Building the Arvados SDK <notextile> <pre> $ <code class="userinput">cd $ARVADOS_HOME/sdk/java</code> $ <code class="userinput">mvn -Dmaven.test.skip=true clean package</code> This will generate arvados sdk jar file in the target directory </pre> </notextile> h3. Implementing your code to use SDK * The following two sample programs serve as sample implementations using the SDK. <code class="userinput">$ARVADOS_HOME/sdk/java/ArvadosSDKJavaExample.java</code> is a simple program that makes a few calls to API server. <code class="userinput">$ARVADOS_HOME/sdk/java/ArvadosSDKJavaExampleWithPrompt.java</code> can be used to make calls to API server interactively. Please use these implementations to see how you would use the SDK from your java program. Also, refer to <code class="userinput">$ARVADOS_HOME/arvados/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java</code> for more sample API invocation examples. Below are the steps to compile and run these java program. * These programs create an instance of Arvados SDK class and use it to make various <code class="userinput">call</code> requests. * To compile the examples <notextile> <pre> $ <code class="userinput">javac -cp $ARVADOS_HOME/sdk/java/target/arvados-sdk-1.1-jar-with-dependencies.jar \ ArvadosSDKJavaExample*.java</code> This results in the generation of the ArvadosSDKJavaExample*.class files in the same directory as the java files </pre> </notextile> * To run the samples <notextile> <pre> $ <code class="userinput">java -cp .:$ARVADOS_HOME/sdk/java/target/arvados-sdk-1.1-jar-with-dependencies.jar \ ArvadosSDKJavaExample</code> $ <code class="userinput">java -cp .:$ARVADOS_HOME/sdk/java/target/arvados-sdk-1.1-jar-with-dependencies.jar \ ArvadosSDKJavaExampleWithPrompt</code> </pre> </notextile> h3. Viewing and Managing SDK logging * SDK uses log4j logging * The default location of the log file is <code class="userinput">$ARVADOS_HOME/sdk/java/log/arvados_sdk_java.log</code> * Update <code class="userinput">log4j.properties</code> file to change name and location of the log file. <notextile> <pre> $ <code class="userinput">nano $ARVADOS_HOME/sdk/java/src/main/resources/log4j.properties</code> and modify the <code class="userinput">log4j.appender.fileAppender.File</code> property as needed. Rebuild the SDK: $ <code class="userinput">mvn -Dmaven.test.skip=true clean package</code> </pre> </notextile> h3. Using the SDK in eclipse * To develop in eclipse, you can use the provided <code class="userinput">eclipse project</code> * Install "m2eclipse":https://www.eclipse.org/m2e/ plugin in your eclipse * Set <code class="userinput">M2_REPO</code> classpath variable in eclipse to point to your local repository. The local repository is usually located in your home directory at <code class="userinput">$HOME/.m2/repository</code>. <notextile> <pre> In Eclipse IDE: Window -> Preferences -> Java -> Build Path -> Classpath Variables Click on the "New..." button and add a new M2_REPO variable and set it to your local Maven repository </pre> </notextile> * Open the SDK project in eclipse <notextile> <pre> In Eclipse IDE: File -> Import -> Existing Projects into Workspace -> Next -> Browse and select $ARVADOS_HOME/sdk/java </pre> </notextile>