AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial de Java para AWS Cloud9
importante
Si utiliza un entorno de desarrollo de AWS Cloud9 respaldado por una instancia de EC2 con 2 GiB o más de memoria, recomendamos que active la compatibilidad con Java mejorada. Esto proporciona acceso a características de productividad clave como la finalización de código, lint de errores, acciones específicas del contexto y opciones de depuración, como puntos de interrupción e incrementos.
Para obtener más información, consulte Compatibilidad con el desarrollo de Java mejorada.
Este tutorial le permite ejecutar código de Java en un entorno de desarrollo de AWS Cloud9.
El uso de este tutorial y la creación de esta muestra pueden generar cargos en su cuenta de AWS. Entre estos se incluyen posibles cargos por servicios como Amazon EC2 y Amazon S3. Para obtener más información, consulte Precios de Amazon EC2
Requisitos previos
Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:
-
Debe tener un entorno de desarrollo de AWS Cloud9 EC2. En este ejemplo, se da por hecho que ya tiene un entorno de EC2 que está conectado a una instancia de Amazon EC2 que ejecuta Amazon Linux o Ubuntu Server. Si tiene otro tipo de entorno o sistema operativo, es posible que tenga que adaptar las instrucciones de este ejemplo para configurar herramientas relacionadas. Para obtener más información, consulte Crear un entorno en AWS Cloud9.
-
Ya tiene abierto el IDE de AWS Cloud9 para el entorno existente. Al abrir un entorno, AWS Cloud9 abre el IDE de ese entorno en el navegador web. Para obtener más información, consulte Apertura de un entorno en AWS Cloud9.
Paso 1: Instalar las herramientas necesarias
En este paso, instalará un conjunto de herramientas de desarrollo de Java en su entorno de desarrollo de AWS Cloud9. Si ya tiene un conjunto de herramientas de desarrollo de Java como Oracle JDK u OpenJDK instalado en su entorno, continúe en Paso 2: Agregar el código. Esta muestra se desarrolló con OpenJDK 8, que puede instalar en su entorno realizando el siguiente procedimiento.
-
Confirme si OpenJDK 8 ya está instalado. Para ello, en una sesión del terminal en el IDE de AWS Cloud9, ejecute la versión de la línea de comandos del ejecutador de Java con la opción
-version
. (Para iniciar una nueva sesión del terminal, en la barra de menús, seleccione Window [Ventana], New Terminal [Nuevo terminal]).java -version
En función del resultado del comando anterior, realice una de las siguientes acciones:
-
Si el resultado indica que no se encuentra el comando
java
, continúe con el paso 2 de este procedimiento para instalar OpenJDK 8. -
Si el resultado contiene valores que comienzan con
Java(TM)
,Java Runtime Environment
,Java SE
,J2SE
oJava2
, el OpenJDK no está instalado o no se ha establecido como el conjunto de herramientas de desarrollo de Java predeterminado. Continúe con el paso 2 de este procedimiento para instalar OpenJDK 8 y, a continuación, cambie a OpenJDK 8. -
Si el resultado contiene valores que comienzan por
java version 1.8
yOpenJDK
, continúe en Paso 2: Agregar el código. OpenJDK 8 se instala correctamente para esta muestra. -
Si el resultado contiene un
java version
menor que1.8
y valores que comienzan porOpenJDK
, continúe con el paso 2 de este procedimiento para actualizar la versión de OpenJDK instalada a OpenJDK 8.
-
-
Asegúrese de que las últimas actualizaciones de seguridad y correcciones de errores están instaladas. Para ello, ejecute la herramienta yum (para Amazon Linux) o la herramienta apt (para Ubuntu Server) con el comando
update
.Para Amazon Linux:
sudo yum -y update
Para Ubuntu Server:
sudo apt update
-
Instale OpenJDK 8. Para ello, ejecute la herramienta yum (para Amazon Linux) o la herramienta apt (para Ubuntu Server) con el comando
install
y especifique el paquete OpenJDK 8.Para Amazon Linux:
sudo yum -y install java-1.8.0-openjdk-devel
Para Ubuntu Server:
sudo apt install -y openjdk-8-jdk
Para obtener más información, consulte Cómo descargar e instalar paquetes OpenJDK preconfigurados
en el sitio web de OpenJDK. -
Cambie o actualice el conjunto de herramientas de desarrollo Java predeterminado a OpenJDK 8. Para ello, ejecute el comando
update-alternatives
con la opción--config
. Ejecute este comando dos veces para cambiar o actualizar las versiones de la línea de comandos del ejecutor y compilador de Java.sudo update-alternatives --config java sudo update-alternatives --config javac
En cada solicitud, escriba el número de selección para OpenJDK 8 (el que contiene
java-1.8
). -
Confirme que las versiones de la línea de comandos del ejecutor y el compilador de Java utilizan OpenJDK 8. Para ello, ejecute las versiones de la línea de comandos del ejecutor y el compilador de Java con la opción
-version
.java -version javac -version
Si OpenJDK 8 está instalado y configurado correctamente, la salida de la versión del ejecutador de Java contiene un valor que comienza por
openjdk version 1.8
y la salida de la versión del compilador de Java comienza por el valorjavac 1.8
.
Paso 2: Agregar el código
En el IDE de AWS Cloud9, cree un archivo con el siguiente código y guárdelo con el nombre hello.java
. (Para crear un archivo, en la barra de menús, elija File [Archivo], New File [Archivo nuevo]. Para guardar el archivo, elija File [Archivo], Save [Guardar]).
public class hello { public static void main(String []args) { System.out.println("Hello, World!"); System.out.println("The sum of 2 and 3 is 5."); int sum = Integer.parseInt(args[0]) + Integer.parseInt(args[1]); System.out.format("The sum of %s and %s is %s.\n", args[0], args[1], Integer.toString(sum)); } }
Paso 3: Compilar y ejecutar el código
-
Utilice la versión de la línea de comandos del compilador de Java para compilar el archivo
hello.java
en un archivohello.class
. Para ello, con el terminal del IDE de AWS Cloud9, desde el mismo directorio que el archivohello.java
, ejecute el compilador de Java y especifique el archivohello.java
.javac hello.java
-
Utilice la versión de la línea de comandos del ejecutador de Java para ejecutar el archivo
hello.class
. Para ello, desde el mismo directorio que el archivohello.class
, ejecute el ejecutador de Java, especificando el nombre de la clasehello
que se declaró en el archivohello.java
, con dos enteros para añadirlos (por ejemplo,5
y9
).java hello 5 9
-
Compare sus resultados.
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
Paso 4: Configurar el uso del AWS SDK for Java
Puede mejorar esta muestra para utilizar el AWS SDK for Java y crear un bucket de Amazon S3, mostrar una lista de los buckets disponibles y, a continuación, eliminar el bucket que acaba de crear.
En este paso, instale Apache Maven
Configuración con Maven
-
Instale Maven en su entorno. Para determinar si Maven ya está instalado, use el terminal del IDE de AWS Cloud9 y ejecute Maven con la opción
-version
.mvn -version
Si es así, el resultado contendrá el número de versión de Maven. Si Maven ya está instalado, vaya al paso 4 de este procedimiento para utilizar Maven con el fin de generar un nuevo proyecto Java en su entorno.
-
Instale Maven utilizando el terminal para ejecutar los siguientes comandos.
Para Amazon Linux, los siguientes comandos obtienen información sobre el repositorio de paquetes donde se almacena Maven y, a continuación, utilizan esta información para instalar Maven.
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo sudo yum install -y apache-maven
Para obtener más información sobre los comandos anteriores, consulte Paquetes Extra para Enterprise Linux (EPEL)
en el sitio web wiki del proyecto Fedora. Para Ubuntu Server, ejecute en cambio el siguiente comando.
sudo apt install -y maven
-
Confirme la instalación ejecutando Maven con la opción
-version
.mvn -version
-
Utilice Maven para generar un nuevo proyecto Java. Para ello, utilice el terminal para ejecutar el siguiente comando desde el directorio donde desea que Maven genere el proyecto (por ejemplo, el directorio raíz de su entorno).
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
El comando anterior crea la siguiente estructura de directorios para el proyecto en su entorno.
my-app |- src | `- main | `- java | `- com | `- mycompany | `- app | `-App.java |- test | `- java | `- com | `- mycompany | `- app | `- AppTest.java `- pom.xml
Para obtener más información sobre la estructura de directorios anterior, consulte Arquetipo de inicio rápido de Maven
e Introducción al diseño de directorios estándar en el sitio web del proyecto Apache Maven. -
Modifique el archivo Project Object Model (POM) del proyecto. (Un archivo POM define la configuración de un proyecto Maven). Para ello, en la ventana Environment (Entorno), abra el archivo
my-app/pom.xml
. En el editor, reemplace el contenido actual del archivo por el siguiente código y, a continuación, guarde el archivopom.xml
.<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.6.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.mycompany.app.App</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>1.11.330</version> </dependency> </dependencies> </project>
El archivo POM anterior incluye la configuración del proyecto que especifica declaraciones como las siguientes:
-
La configuración
artifactid
demy-app
establece el nombre del directorio raíz del proyecto y la configuracióngroup-id
decom.mycompany.app
establece la estructura de subdirectorioscom/mycompany/app
y la declaraciónpackage
en los archivosApp.Java
yAppTest.java
. -
La configuración
artifactId
demy-app
, con la configuraciónpackaging
dejar
, la configuraciónversion
de1.0-SNAPSHOT
y la configuracióndescriptorRef
dejar-with-dependencies
establece el nombre del archivo JAR de salida demy-app-1.0-SNAPSHOT-jar-with-dependencies.jar
. -
La sección
plugin
declara que se creará un único JAR, que incluye todas las dependencias. -
La sección
dependency
con la configuracióngroupId
decom.amazon.aws
y la configuraciónartifactId
deaws-java-sdk
incluye los archivos de biblioteca de AWS SDK for Java. La versión de AWS SDK for Java que se usará se declara mediante la configuraciónversion
. Para utilizar otra versión, reemplace este número de versión.
-
Vaya a Paso 5: Configurar la administración de credenciales de AWS en su entorno.
Configuración con Gradle
-
Instale Gradle en su entorno. Para determinar si Gradle ya está instalado, utilice el terminal del IDE de AWS Cloud9 y ejecute Gradle con la opción
-version
.gradle -version
Si es así, el resultado contendrá el número de versión de Gradle. Si Gradle ya está instalado, vaya al paso 4 de este procedimiento para utilizar Gradle con el fin de generar un nuevo proyecto Java en su entorno.
-
Instale Gradle utilizando el terminal para ejecutar los siguientes comandos. Estos comandos instalan y ejecutan la herramienta SDKMAN! y, a continuación, utilizan SDKMAN! para instalar la última versión de Gradle.
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install gradle
Para obtener más información sobre los comandos anteriores, consulte Installation
en el sitio web de SDKMAN e Install with a package manager en el sitio web Gradle. -
Confirme la instalación ejecutando Gradle con la opción
-version
.gradle -version
-
Utilice Gradle para generar un nuevo proyecto Java en su entorno. Para ello, use el terminal para ejecutar los siguientes comandos con el fin de crear un directorio para el proyecto y, a continuación, cambie a ese directorio.
mkdir my-app cd my-app
-
Ejecute el siguiente comando para que Gradle genere un nuevo proyecto de aplicación Java en el directorio
my-app
de su entorno.gradle init --type java-application
El comando anterior crea la siguiente estructura de directorios para el proyecto en su entorno.
my-app |- .gradle | `- (various supporting project folders and files) |- gradle | `- (various supporting project folders and files) |- src | |- main | | `- java | | `- App.java | `- test | `- java | `- AppTest.java |- build.gradle |- gradlew |- gradlew.bat `- settings.gradle
-
Modifique
AppTest.java
para el proyecto. (Si no lo hace, es posible que el proyecto no se compile ni ejecute del modo previsto). Para ello, en la ventana Environment (Entorno), abra el archivomy-app/src/test/java/AppTest.java
. En el editor, reemplace el contenido actual del archivo por el siguiente código y, a continuación, guarde el archivoAppTest.java
.import org.junit.Test; import static org.junit.Assert.*; public class AppTest { @Test public void testAppExists () { try { Class.forName("com.mycompany.app.App"); } catch (ClassNotFoundException e) { fail("Should have a class named App."); } } }
-
Modifique el archivo
build.gradle
para el proyecto. (Un archivobuild.gradle
define la configuración de un proyecto Gradle). Para ello, en la ventana Environment (Entorno), abra el archivomy-app/build.gradle
. En el editor, reemplace el contenido actual del archivo por el siguiente código y, a continuación, guarde el archivobuild.gradle
.apply plugin: 'java' apply plugin: 'application' repositories { jcenter() mavenCentral() } buildscript { repositories { mavenCentral() } dependencies { classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE" } } apply plugin: "io.spring.dependency-management" dependencyManagement { imports { mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.330' } } dependencies { compile 'com.amazonaws:aws-java-sdk-s3' testCompile group: 'junit', name: 'junit', version: '4.12' } run { if (project.hasProperty("appArgs")) { args Eval.me(appArgs) } } mainClassName = 'App'
El archivo
build.gradle
anterior incluye la configuración del proyecto que especifica declaraciones como las siguientes:-
El complemento
io.spring.dependency-management
se utiliza para importar la lista de materiales (BOM) de AWS SDK for Java de Maven para administrar las dependencias AWS SDK for Java del proyecto.classpath
declara la versión que se utilizará. Para utilizar otra versión, reemplace este número de versión. -
com.amazonaws:aws-java-sdk-s3
incluye la parte de Amazon S3 de los archivos de la biblioteca de AWS SDK for Java.mavenBom
declara la versión que se utilizará. Si desea utilizar otra versión, reemplace este número de versión.
-
Paso 5: Configurar la administración de credenciales de AWS en su entorno
Cada vez que utilice el AWS SDK for Java para llamar a un servicio de AWS, debe proporcionar un conjunto de credenciales de AWS con la llamada. Estas credenciales determinan si el AWS SDK for Java tiene los permisos adecuados para realizar esa llamada. Si las credenciales no cubren los permisos adecuados, la llamada no se realizará correctamente.
En este paso, se almacenan las credenciales dentro del entorno. Para ello, siga las instrucciones de Llamar a los Servicios de AWS desde un entorno en AWS Cloud9 y, a continuación, vuelva a este tema.
Para obtener más información, consulte Configurar las credenciales y la región de AWS para el desarrollo en la Guía para desarrolladores de AWS SDK for Java.
Paso 6: Agregar el código de AWS SDK
En este paso, agregará código para interactuar con Amazon S3 y crear un bucket, enumerará los buckets disponibles y, a continuación, eliminará el bucket que acaba de crear.
En la ventana Environment (Entorno) abra el archivo my-app/src/main/java/com/mycompany/app/App.java
para Maven o el archivo my-app/src/main/java/App.java
para Gradle. En el editor, reemplace el contenido actual del archivo por el siguiente código y, a continuación, guarde el archivo App.java
.
package com.mycompany.app; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.Bucket; import com.amazonaws.services.s3.model.CreateBucketRequest; import java.util.List; public class App { private static AmazonS3 s3; public static void main(String[] args) { if (args.length < 2) { System.out.format("Usage: <the bucket name> <the AWS Region to use>\n" + "Example: my-test-bucket us-east-2\n"); return; } String bucket_name = args[0]; String region = args[1]; s3 = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(region) .build(); // List current buckets. ListMyBuckets(); // Create the bucket. if (s3.doesBucketExistV2(bucket_name)) { System.out.format("\nCannot create the bucket. \n" + "A bucket named '%s' already exists.", bucket_name); return; } else { try { System.out.format("\nCreating a new bucket named '%s'...\n\n", bucket_name); s3.createBucket(new CreateBucketRequest(bucket_name, region)); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } } // Confirm that the bucket was created. ListMyBuckets(); // Delete the bucket. try { System.out.format("\nDeleting the bucket named '%s'...\n\n", bucket_name); s3.deleteBucket(bucket_name); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); } // Confirm that the bucket was deleted. ListMyBuckets(); } private static void ListMyBuckets() { List<Bucket> buckets = s3.listBuckets(); System.out.println("My buckets now are:"); for (Bucket b : buckets) { System.out.println(b.getName()); } } }
Paso 7: Compilar y ejecutar el código de AWS SDK
Para ejecutar el código desde el paso anterior, ejecute los siguientes comandos desde el terminal. Estos comandos usan Maven o Gradle para crear un archivo JAR ejecutable para el proyecto y, a continuación, usan el ejecutador de Java para ejecutar el archivo JAR. El archivo JAR se ejecuta con el nombre del bucket que se va a crear en Amazon S3 (por ejemplo, my-test-bucket
) y el ID de la región de AWS para crear el bucket como entrada (por ejemplo, us-east-2
).
Para Maven, ejecute los siguientes comandos.
cd my-app mvn package java -cp target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar com.mycompany.app.App my-test-bucket us-east-2
Para Gradle, ejecute los siguientes comandos.
gradle build gradle run -PappArgs="['my-test-bucket', 'us-east-2']"
Compare sus resultados con la siguiente salida.
My buckets now are: Creating a new bucket named 'my-test-bucket'... My buckets now are: my-test-bucket Deleting the bucket named 'my-test-bucket'... My buckets now are:
Paso 8: Eliminación
Para evitar que se apliquen cargos continuos en su cuenta de AWS después de terminar de usar esta muestra, debe eliminar el entorno. Para obtener instrucciones, consulte Eliminación de un entorno en AWS Cloud9.