es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se pudo encontrar ni cargar la clase principal de Java jar en AWS EC2 Linux.

Necesito ejecutar en Linux en AWS EC2 mi archivo jar. Tengo un multi-proyecto en Gradle. Sé que existen muchos análogos a mi problema, pero no encontré nada con el multi-proyecto.

La estructura de mi proyecto es la siguiente:

demo
   -core
       com.example
       build.gradle
   -web
       build.gradle
       com.example
          DemoApplication.java (main)
   build.gradle

Mi archivo build.gradle en demo es el siguiente:

plugins {
    id 'org.springframework.boot' version '2.6.1'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

jar {
    manifest {
        attributes 'Main-class' : 'com.example.DemoApplication'
    }
}


configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-data-ldap'
    implementation 'org.springframework.boot:spring-boot-starter-hateoas'
    implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
    implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'mysql:mysql-connector-java'
    runtimeOnly 'org.postgresql:postgresql'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.security:spring-security-test'
}

test {
    useJUnitPlatform()
}

Cuando ejecuto el comando jar, obtengo el archivo jar que ejecuto en Linux con el comando java -jar '/home/ec2-user/demo-0.0.1-SNAPSHOT-plain.jar' y me da un error:

>Could not find or load main class com.example.DemoApplication
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para ejecutar su archivo jar en Linux en AWS EC2, siga estos pasos:

    1. Conéctese a su instancia EC2. Puede usar SSH o cualquier otra aplicación de terminal remota para hacerlo.
    2. Transfiera su archivo jar a la instancia EC2. Puede usar cualquier método para hacerlo, como usar el comando scp o cargar el archivo en un lugar de almacenamiento en la nube y descargarlo desde la instancia EC2.

    3. Navegue hasta el directorio donde se encuentra su archivo jar utilizando el terminal.

    4. Ejecute el siguiente comando para ejecutar el archivo jar:

    java -jar demo-0.0.1-SNAPSHOT.jar

    Nota: Reemplace demo-0.0.1-SNAPSHOT.jar con el nombre real de su archivo jar.

    Si aún enfrenta el error “Could not find or load main class com.example.DemoApplication”, intente ejecutar el siguiente comando en su lugar:

    java -cp demo-0.0.1-SNAPSHOT.jar com.example.DemoApplication

    Esto debería ejecutar su aplicación sin problemas.

Comments are closed.