欢迎使用阿里云开发者工具套件(SDK)。阿里云Java SDK让您不用复杂编程即可访问云服务器、云数据库RDS、云监控等多个阿里云服务。本操作介绍如何获取阿里云Java SDK并开始调用。

如果您在使用SDK的过程中遇到任何问题,欢迎前往阿里云SDK问答社区提问,提问前请阅读提问引导提交反馈

环境准备

  • 使用阿里云Java SDK,您需要一个RAM账号以及一对AccessKey ID和AccessKey Secret。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。
  • 使用阿里云SDK调用某个产品的API前,确保您已经在阿里云控制台开通了该产品。
  • 阿里云Java SDK需要1.6以上的JDK。

安装阿里云 Java SDK

如果您使用Apache Maven来管理Java项目,只需在项目的pom.xml中文件加入相应的依赖项即可。您可以在阿里云GitHub中下载各云产品的Maven依赖。

无论您要使用哪个产品的开发工具包,都必须安装SDK核心库。比如,对云服务器ECS的SDK调用,您需要安装SDK核心库和云服务器ECS的SDK。

以3.7.0版本的SDK核心库和4.11.0版本的ECS SDK为例,您只需在 pom.xml中声明这两个开发工具包,如下所示:
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>3.7.0</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-ecs</artifactId>
    <version>4.11.0</version>
</dependency>

使用Java SDK

以下这个代码示例展示了调用阿里云Java SDK的3个主要步骤:

  1. 创建并初始化DefaultAcsClient实例。
  2. 创建API请求并设置参数。
  3. 发起请求并处理应答或异常。
    package com.testprogram;
     import com.aliyuncs.profile.DefaultProfile;
     import com.aliyuncs.DefaultAcsClient;
     import com.aliyuncs.IAcsClient;
     import com.aliyuncs.exceptions.ClientException;
     import com.aliyuncs.exceptions.ServerException;
     import com.aliyuncs.ecs.model.v20140526.*;
     public class Main {
         public static void main(String[] args) {
             // 创建DefaultAcsClient实例并初始化
             DefaultProfile profile = DefaultProfile.getProfile(
                 "<your-region-id>",          // 地域ID
                 "<your-access-key-id>",      // RAM账号的AccessKey ID
                 "<your-access-key-secret>"); // RAM账号Access Key Secret
             IAcsClient client = new DefaultAcsClient(profile);
             // 创建API请求并设置参数
             DescribeInstancesRequest request = new DescribeInstancesRequest();
             request.setPageSize(10);
             request.setConnectTimeout(5000); //设置连接超时为5000毫秒
             request.setReadTimeout(5000); //设置读超时为5000毫秒
             // 发起请求并处理应答或异常
             DescribeInstancesResponse response;
             try {
                 response = client.getAcsResponse(request);
                 for (DescribeInstancesResponse.Instance instance:response.getInstances()) {
                     System.out.println(instance.getPublicIpAddress());
                 }
             } catch (ServerException e) {
                 e.printStackTrace();
             } catch (ClientException e) {
                 e.printStackTrace();
             }
         }
     }