Skip to content

Instantly share code, notes, and snippets.

@MasterGeekMX
Created October 23, 2022 04:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MasterGeekMX/e45c377a69fdea0f1990274a52e2d140 to your computer and use it in GitHub Desktop.
Save MasterGeekMX/e45c377a69fdea0f1990274a52e2d140 to your computer and use it in GitHub Desktop.
Como crear un archivo ejecutable .jar a mano desde una terminal.

En este archivo les mostraré como hacer un archivo ejecutable .jar super básico con un hola mundo clásico de ejemplo.

Está pensado para hacerce en Linux, pero en teoría no deberia haber problema en Windows o macOS.

El signo de dinero $ es para indicar que lo que pongo es un comando a ejecutar en la terminal, en lugar de una línea de código

  1. Tener tus archivos .java listos (duh).
Hola.java:
public class Hola{
	public static void main(String[] args){
		System.out.println("Qiubole");
	}
}
  1. Compilar con javac el archivo donde esta el main(). Generará archivos .class por cada clase que usemos en nuestro programa.
$ javac Hola.java
$ ls
Hola.java Hola.class
  1. Crear el .jar indicando:
  • la operación a efectuar es crear un .jar
  • el punto de entrada (la clase que tiene el método main())
  • y los archivos .class a meter dentro del .jar

Hay dos formas de referenciar el punto de entrada:

  1. indicar directamente el nombre de la clase que contiene el main()
$ jar --create --file=hola.jar --main-class=Hola Hola.class

ó

$ jar -c -f hola.jar -e Hola Hola.class

ó

$ jar cfe hola.jar Hola Hola.class
  1. genera un archivo de manifiesto que traiga el nombre de la clase que contiene el main() y luego referenciarlo: NOTA: al final de este debe haber una línea vacia, tal y como se ve abajo, si no no va a funcionar.
manifiesto.txt:
Manifest-Version: 1.0
Created-By: MasterGeek.MX (o el nombre que quieran)
Main-Class: Hola

$ jar --create --file=hola.jar --manifest=manifiesto.txt Hola.class

ó

$ jar -c -f hola.jar -m manifiesto.txt Hola.class

ó

$ jar cfm hola.jar manifiesto.txt Hola.class
  1. echar a andar el .jar que acabamos de crear y verlo funcionar
$ java -jar hola.jar
Qiubole
public class Hola{
public static void main(String[] args){
System.out.println("Qiubole");
}
}
Manifest-Version: 1.0
Created-By: Tu nombre aqui
Main-Class: Hola
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment