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 |
⚠️ 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 |
| 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 |
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
-
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.
-
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.
-
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.