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
davy.ai
Para ejecutar su archivo
jar
en Linux en AWS EC2, siga estos pasos:Transfiera su archivo
jar
a la instancia EC2. Puede usar cualquier método para hacerlo, como usar el comandoscp
o cargar el archivo en un lugar de almacenamiento en la nube y descargarlo desde la instancia EC2.Navegue hasta el directorio donde se encuentra su archivo
jar
utilizando el terminal.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 archivojar
.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.