You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

2 Días
15 Hrs
58 Min
46 Seg
Curso de Java Spring

Curso de Java Spring

Alejandro Ramírez

Alejandro Ramírez

Desplegar nuestra API desde la ventana de comandos

32/35
Resources

How to deploy a Java application using the terminal?

Deploying a Java application in a production environment may seem like a daunting task at first. However, with the right instructions, it can be a simple and straightforward process. Here I will show you how to do it using a self-contained application and your computer's terminal.

What commands should I use to deploy my application?

To deploy your application from the terminal, we follow the steps below:

  1. Generate the final artifact:

    • We use the BootJard command to package the application.
    • We access the IDE, go to the Gradle section and look for the BootJard task inside the build folder.
  2. Change the version of our application:

    • We edit the build.gradle file to change the version to 1.0 instead of 0.0.1.
  3. Decide the deployment parameters:

    • Adjust the memory allocated using -Xmx2048m.
    • Change the port using -Dserver.port.
  4. Execute the command from the terminal:

    • We locate inside the project folder.
    • Execute the following command replacing name and location by the correct values:
    java -jar location/name.jar

How to resolve common conflicts during deployment?

During the deployment process, issues may arise. Here's how to deal with some common problems:

  • Port in use: If the port is busy, we must stop any service that is using it (in Intellij IDEA, we must stop the running service).
  • Select the appropriate active profile:
    • If you need to change the active profile to production, cancel the current process and re-run the java -jar command, but adding:
    -Dspring.profiles.active=prod

What is the importance of selecting the correct profile?

Application profiles are vital to modify the configuration depending on the environment (development, test or production). By using -Dspring.profiles.active=prod, we instruct our application to use the settings defined for production in application-prod.properties.

What technical requirements must be met?

  • Compatible Java version:
    • Be sure to deploy your JAR file in an environment that uses the same version of Java that you used during development.

These detailed steps demystify the Java deployment process, allowing you to take your application to the next level. Remember to always test in local environments before scaling up to production, and keep exploring to master more advanced techniques - keep learning and taking your skills to the next step!

Contributions 22

Questions 12

Sort by:

Want to see more contributions, questions and answers from the community?

Si alguien utiliza el power Shell de windows y recibe el error:
Error: Unable to access jarfile .profiles.active=pdn

debe colocar -Dspring.profiles.active=pdn entre comillas, así

“-Dspring.profiles.active=pdn”.

Para los que realizaron su proyecto con maven estos comandos les puede servir
**Modo desarrollo **

  • Ubicarse en la caperta raiz del proyecto y ejecutar el sigunete comando mvn clean package -DskipTests (Crear el artefacto)

  • Después ubicarse a nivel de la carpeta target en donde se encuenta el .jar y ejecutar java -jar platzi-market-1.0.jar

Modo producción

  • deben volver a la carpeta raiz del proyecto y ejecutar el comando mvn clean package -DskipTests

  • ubicarse nuevamente en la carpeta taget y ejecutar el comando java -jar -Dspring.profiles.active=pdn plazi-market-1.0.jar

  • no olviden cambiar el puerto de produción 80 o el puerto que hayan puesto (Postman)

Nota: si no tienen instalado Maven en su ordenador pueden utilizar el maven embebido que viene con el proyecto y remplazar mvn por mvnw en los comandos antes mencionados

Profesor muchas gracias en serio que es uno de los mejores cursos que he realizado

Me parece que falta el como hacerlo para generar un war y no un jar

Por si alguien tiene el mismo problema:

Cuando quería usar el perfil spring.profiles.active=pdn no me funcionaba.

En mi caso lo solucioné cambiando el puerto en application-pdn.properties. Antes usaba el puerto 80. Cambiandolo a valores parecidos a 8090 (8070 por ejemplo) se arregló.

Despues de modificar el puerto, hay que volver a ejecutar bootJar.

Si tienen problemas prueben ejecutar de nuevo el bootJar, yo al ingresar el comando para cambiar a pdn me daba muchos errores, fue porque le hice unos cambios en el código y no se reflejaban en el jar

vamos a usar el java - jar de java, con el parametro .jar … javamos a javanarlo xD

Desde el 18/01/2024 a las 16h45 escribo como lo pude solucionar en mi proyecto usando un proyecto spring boot con la version 3.2.1 gradle y openJDK Jar 17. Despues de aplicar la configuracion del video, verifiquen muy bien el nombre del archivo bootJar generado en su carpeta build/libs pues podria tener un nombre diferente, por ejemplo, mi proyecto de platzi se llama online-shop, pero cuando genero la Task build bootJar, no se llama online-shop-1.0.jar sino platzi-1.0.jar, asi que al intentar acceder a el, obtenia el error: "Unable to access to JarFile...etc"; asi que parte de la solucion esta en conocer el nombre preciso del archivo Jar que genera su proyecto. Lo segundo es que, luego de lo anterior, pueden ejecutar el comando ./gradlew clean, asi limpian el proyecto del archivo .jar que este generando conflictos en su configuracion, y entonces pueden volver a ejecutar la Task build bootJar, les generara una nueva carpeta build con su archivo .jar y la respectiva configuracion, y ya pueden ejecutar en terminal el comando java -jar build/libs/nombre-del-archivo.jar para el perfil dev, y el comando java -jar "-Dspring.profiles.active=pdn" build/libs/nombre-del-archivo.jar para el perfil produccion. Recuerden verificar sus puertos tanto en dev como en pdn, para que no les truene la ejecucion
Si en la terminal recibes el error: Error: Unable to access jarfile .profiles.active=pdn debes colocar -Dspring.profiles.active=pdn entre comillas, así: "-Dspring.profiles.active=pdn".

cuando intento ejecutar el comando de java me sale el siguiente error

D:\platzi-market>java -jar /build/libs/platzi-market-1.0.jar
Error: Unable to access jarfile /build/libs/platzi-market-1.0.jar

Para los que le aparece el siguiente error ***********no hay ningún atributo de manifiesto principal en services-products-1.0.jar ****************

agregar lo siguiente al pom

<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
					<configuration>
						<mainClass>com.globant.pod4.machines.servicesproducts.ServicesProductsApplication</mainClass>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>repackage</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

luego correr este comando: mvn package spring-boot:repackage

Si modifican algo en el editor de Codigo , deben correr de bueno el bootJar para que se apliquen los cambios.

No me dejo desplegar mi aplicación :c creo que mi JRE esta desactualizado, me sale la siguiente excepcion:

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/platzi/market/MarketApplication has been compiled by a more recent version of the Java Runti
me (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Sin embargo tengo el JDK 11.0.3, alguien sabe como podría actualizar el JRE ? :c

Recuerden terminar el proceso en el IDE si van a usar el mismo puerto.

alguno le a pasado que no entra en el login

Me pueden ayudar para terminar y desplegarla por favor

Tengo un problema, me envía este mensaje en la consola luego de hacer java -jar market.jar org.springframework.boot.SpringApplication -- Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': El proyecto lo hice con Maven y he leído que es por problemas de versionamiento de mi spring boot pero realmente no estoy seguro.

¡Excelente!

Listo ✅

quien me puede hechar una manito

Hola, me da este error al compilar presionar bootjar
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use ‘–warning-mode all’ to show the individual deprecation warnings.
See https://docs.gradle.org/6.7.1/userguide/command_line_interface.html#sec:command_line_warnings

¿Cómo puedo hacer que este perfil pueda ser mapeado a un Bean en particular?