📝 ficha_formatos_ejecutables
← Volver

Formatos de Empaquetado y Ejecutables por Sistema Operativo

Tema transversal de oposiciones TIC — Administración de Sistemas / Desarrollo de Software


Tabla resumen rápida

Ámbito Formatos clave
Java (empaquetado) .jar, .war, .ear, .rar, .car
Windows .exe, .msi, .bat, .cmd, .dll, .ps1
Linux sin extensión, .elf, .sh, .deb, .rpm, .AppImage
macOS .app, .pkg, .dmg, .dylib
Android .apk, .aab, .so
iOS .ipa, .app, .framework, .dylib

1. Formatos de Empaquetado Java

⚠️ Todos los formatos Java son internamente archivos ZIP con estructura de directorios específica.

JAR ──► Librería / app standalone
 └── WAR ──► Aplicación web (sobre servidor como Tomcat)
      └── EAR ──► Aplicación empresarial Java EE (contiene WARs + JARs)

Tabla comparativa

Formato Nombre completo Contenido típico Entorno de ejecución
.jar Java Archive Clases .class, recursos, MANIFEST.MF JVM directamente
.war Web Application Archive Servlets, JSP, HTML, WEB-INF/, clases Servidor web (Tomcat, Jetty)
.ear Enterprise Archive Módulos WAR + JAR + application.xml Servidor de aplicaciones (JBoss, WebLogic)
.rar Resource Adapter Archive Conectores JCA para sistemas externos Servidor Java EE (JCA)
.car Application Client Archive Clientes de aplicación Java EE Entorno cliente Java EE

Jerarquía de contenedores

EAR
├── módulo1.war        ← Aplicación web
│   ├── WEB-INF/
│   │   ├── web.xml
│   │   └── classes/
│   └── index.jsp
├── modulo2.jar        ← Lógica de negocio (EJBs)
└── META-INF/
    └── application.xml

2. Ejecutables por Sistema Operativo

2.1 Windows

Tipo Extensión Descripción
Ejecutable .exe Programa principal en Windows (formato PE)
Instalador .msi Paquete Windows Installer, con rollback
Script por lotes .bat Comandos secuenciales, compatible DOS/CMD
Script de comandos .cmd Similar a .bat, para Windows NT y posteriores
Biblioteca dinámica .dll Código compartido, no ejecutable de forma directa
Script PowerShell .ps1 Scripting avanzado, requiere política de ejecución

2.2 Linux

Tipo Extensión Descripción
Ejecutable binario sin extensión Binarios nativos (ej: ls, bash, nginx)
Binario ELF .elf Executable and Linkable Format, estándar Unix/Linux
Script de shell .sh Script Bash/sh, requiere permisos +x
Paquete Debian .deb Instalable en Debian, Ubuntu y derivadas
Paquete Red Hat .rpm Instalable en Fedora, RHEL, CentOS, openSUSE
AppImage .AppImage App portable autocontenida, sin instalación
Ejecutable Java .jar Ejecutable con JVM: java -jar app.jar
# Dar permisos de ejecución en Linux
chmod +x script.sh
./script.sh

2.3 macOS

Tipo Extensión Descripción
Aplicación .app Paquete (directorio) con binario + recursos
Instalador .pkg Instalador nativo de macOS
Imagen de disco .dmg Contenedor para distribuir .app
Biblioteca dinámica .dylib Equivalente al .dll de Windows en macOS
Script de shell .sh Script Unix, compatible con terminal macOS
Ejecutable binario sin extensión Binarios del sistema y apps de terminal

⚠️ En macOS, .app es en realidad un directorio con estructura interna (Contents/MacOS/, Contents/Resources/), no un fichero único.

2.4 Android

Tipo Extensión Descripción
Paquete de app .apk Android Package, instalable directamente en el dispositivo
App Bundle .aab Formato de publicación en Google Play, optimizado por dispositivo
Librería nativa .so Shared Object, librería nativa compilada (código C/C++)
APK (instalación directa) ──► Distribución manual / sideloading
AAB (Google Play)         ──► Google genera el APK optimizado por dispositivo

2.5 iOS

Tipo Extensión Descripción
Distribución .ipa iPhone Application Archive, distribución oficial
Aplicación .app Paquete interno de la app en entorno Apple
Framework .framework Librería con recursos, headers y binario
Biblioteca dinámica .dylib Librería dinámica en entorno Apple

3. Tabla comparativa entre plataformas

Concepto Windows Linux macOS Android iOS
Ejecutable principal .exe sin ext / .elf .app .apk .ipa
Instalador .msi .deb / .rpm .pkg .aab App Store
Script .bat / .ps1 .sh .sh
Librería dinámica .dll .so .dylib .so .dylib
App portable .exe standalone .AppImage .app (dmg) .apk .ipa

4. Relación entre formatos Java y despliegue

Desarrollo
    │
    ▼
  .jar  ◄── Librería / módulo reutilizable
    │
    ├──► ejecución directa: java -jar app.jar
    │
    ▼
  .war  ◄── Se despliega en servidor web (Tomcat)
    │
    ▼
  .ear  ◄── Se despliega en servidor Java EE (JBoss / WebLogic)

Resumen en 3 puntos

  1. Java empaqueta en capas: .jar (base) → .war (web) → .ear (empresarial). Todos son ZIPs con estructura interna definida por la especificación Java EE / Jakarta EE.

  2. Cada SO tiene su propio formato nativo: Windows usa .exe/.msi, Linux usa ELF sin extensión o paquetes .deb/.rpm, macOS usa .app/.dmg, y los móviles usan .apk/.aab (Android) o .ipa (iOS). Las librerías dinámicas cambian de nombre pero cumplen la misma función: .dll.so.dylib.

  3. Portabilidad vs. integración: Los formatos como .AppImage (Linux) o .jar (Java + JVM) buscan portabilidad entre sistemas; los formatos nativos (.exe, .app, .apk) están optimizados para su plataforma pero no son intercambiables.