FirmaLocal
Firmar un PDF

¿Autofirma necesita Java? Versiones y errores

Autofirma es una aplicación Java, pero en Windows y Mac no hay que instalar Java: el instalador lo incluye. Qué pasa en Linux y qué significa TimeoutException.

Actualizado el

La pregunta «¿Autofirma necesita Java?» tiene una respuesta corta que casi nadie da bien: Autofirma está escrita en Java, pero no necesitas instalar Java salvo en Linux. En Windows y en Mac, el instalador incluye su propio entorno de ejecución. Buena parte de los problemas que se atribuyen a Java —«tengo que actualizar Java», «Java no está habilitado», «error java.lang.Exception»— no tienen nada que ver con la versión de Java que tengas o dejes de tener. Esta guía separa lo que es verdad de lo que es leyenda heredada de la época del applet, y explica qué significan de verdad los errores con nombre de Java.

Lo que dice el manual oficial

El manual de instalación de Autofirma que publica el Portal de Administración Electrónica lo deja escrito: «en entornos macOS y Windows no es necesario tener instalado un entorno de ejecución de Java. En Linux se necesita un entorno completo de ejecución de Java 8 o superior de Oracle u OpenJDK», y recomienda Java 17. Y añade, sobre Windows, que el instalador copia una JRE de OpenJDK al directorio de instalación «que se usará únicamente para ejecutarlo»: no toca el Java del sistema ni depende de él.

En la práctica:

Sistema¿Instalar Java?Qué Java usa Autofirma
WindowsNoEl incluido en C:\Program Files\AutoFirma (casilla «Java Runtime Environment» del instalador, marcada por defecto)
macOSNoEl incluido dentro de AutoFirma.app; solo la variante «para versiones antiguas MacOS (Java 11)» usa el del sistema
LinuxSíEl del sistema: JRE completa, 8 o superior, recomendada 17

De ahí una regla sencilla: si estás en Windows o Mac y alguien te dice que instales o actualices Java para arreglar Autofirma, desconfía. Instalar el Java de java.com no cambia nada para Autofirma, y un Java de 32 bits antiguo puede incluso confundir las cosas si en su día alguien desmarcó la casilla del instalador.

Cuándo Java sí es el problema

Hay tres situaciones reales en las que la versión de Java importa.

Linux: la JRE incompleta o antigua

Es la única plataforma donde Autofirma usa el Java del sistema, y por eso el caso más frecuente. Muchas distribuciones instalan por defecto una JRE headless, sin bibliotecas gráficas: Autofirma arranca, no puede dibujar la ventana y se cierra sin mensaje. La FAQ del proyecto lo señala como la causa clásica. Instala una JRE completa y márcala como predeterminada:

sudo apt install openjdk-17-jre
sudo update-alternatives --config java

Comprueba con java -version que la activa es la que esperas. Los detalles de cada distribución están en Instalar Autofirma en Linux.

Certificados de curva elíptica

Cada vez más certificados —incluidos modelos recientes de la FNMT y del DNIe— usan claves de curva elíptica en lugar de RSA. Según la FAQ del proyecto, las versiones antiguas de Java 8 y las primeras de Java 11 no las soportan, y el certificado simplemente no aparece en el selector de Autofirma, sin ningún aviso. La recomendación es Java 21 o superior. En Linux eso significa actualizar el Java del sistema; en Windows y Mac, actualizar Autofirma, que trae su propio Java más reciente. Si tu certificado no aparece y no sabes por qué, Autofirma no reconoce mi certificado recorre las demás causas.

Windows: la casilla desmarcada

El instalador de Windows permite desmarcar el Java incluido si detecta otro compatible en el sistema. Si alguien lo hizo y ese Java del sistema se desinstaló después, cambió a 32 bits o quedó obsoleto, Autofirma no abre. La solución es reinstalar con la casilla Java Runtime Environment marcada, como se explica en Autofirma no funciona en Windows 11.

«java.util.concurrent.TimeoutException»: no es un problema de Java

Es el error con nombre de Java más buscado, y el que más gente intenta arreglar instalando Java. El texto completo suele ser «java.util.concurrent.TimeoutException → No se pudo contactar con AutoFirma», tal como lo documenta, por ejemplo, el soporte de la Universidad de Zaragoza.

Lo que significa: el script de la sede —que es JavaScript, no Java— ha lanzado Autofirma, ha esperado un tiempo a que la aplicación levantase su servidor local y contestase, y el tiempo se ha agotado. El nombre imita al de una excepción Java por compatibilidad con la antigua API del applet, y despista a todo el mundo. La causa está en la comunicación entre el navegador y Autofirma, no en ningún entorno de ejecución:

  • Autofirma no se ha llegado a abrir (el diálogo del navegador se cerró, el protocolo afirma:// no está registrado).
  • Se ha abierto pero el servidor local está bloqueado por el antivirus o el cortafuegos, o el navegador no confía en su certificado raíz.
  • El equipo ha tardado más de la cuenta.

El orden de comprobación es el de Autofirma no se abre o se cierra sola y, para la parte de comunicación local, el del error SAF_45. Ninguno de los pasos consiste en instalar Java.

«java.lang.Exception» y «el plugin de Java no está habilitado»

Dos mensajes de la misma familia:

  • «java.lang.Exception» a secas, o con un texto genérico detrás, es el mismo mecanismo: el script de la sede informa de un fallo de comunicación con nombre de excepción Java. Hay un caso especialmente absurdo y frecuente: aparece al intentar firmar desde un iPhone o un Android, donde Autofirma no existe ni puede existir. La sede lo intenta igualmente y falla. Lo que sí puedes hacer en el móvil está en firmar en Android y en firmar en iPhone y iPad.
  • «El plugin de Java no está habilitado para este navegador» es un fósil. Lo muestran sedes que aún conservan el código del antiguo MiniApplet, que corría dentro del navegador con el plugin de Java. Ningún navegador actual admite ese plugin desde 2017, y Autofirma no lo usa. Si una sede lo muestra, su integración está desactualizada; la incidencia #441 recoge un caso con Firefox en Linux en el que ese mensaje acompaña al fallo de conexión con el servidor local. Prueba otro navegador y, si persiste, avisa al organismo.

Cómo saber qué Java está usando Autofirma

Si Autofirma abre, entra en Ayuda → Acerca de Autofirma: indica la versión de la aplicación y la del entorno Java que está ejecutando. En Windows debe apuntar a la carpeta de instalación de Autofirma; si apunta a otro Java, la casilla se desmarcó en su día. En Linux, java -version en una terminal muestra el Java del sistema, que es el que Autofirma usará.

Cómo resolverlo, en orden

  1. En Windows y Mac: no instales Java. Reinstala Autofirma desde el portal oficial con el Java incluido y ábrela una vez a mano.
  2. En Linux: instala una JRE completa (17 o, si tu certificado es de curva elíptica, 21 o superior), márcala como predeterminada y reinstala el paquete de Autofirma con apt o dnf.
  3. Si el error es TimeoutException o java.lang.Exception, olvida Java: sigue Autofirma no se abre y SAF_45.
  4. Si el mensaje habla del plugin de Java, prueba otro navegador y avisa a la sede.
  5. Si tu certificado no aparece y es reciente, actualiza Autofirma (Windows/Mac) o Java (Linux).

Firmar sin Java

Todo lo anterior existe porque Autofirma es una aplicación de escritorio en Java. Si el trámite se firma dentro de la sede, esa aplicación es imprescindible y no hay forma de evitarla; en ¿Lo aceptará la sede? explicamos cómo reconocer ese caso.

Si lo que tienes que hacer es entregar un PDF firmado, no necesitas Java en ninguna de sus formas. FirmaLocal firma el PDF dentro del navegador —Chrome, Firefox, Safari o Edge, en Windows, Mac, Linux o el móvil— con tu certificado en fichero .p12 o .pfx, usando la criptografía que el propio navegador incorpora. No hay entorno de ejecución que instalar, ni versión que comprobar, ni servidor local que arrancar. La firma PAdES-B-B se calcula en tu equipo y ni el documento ni el certificado se suben a ningún servidor. Firma tu PDF ahora. Límites: solo certificados en fichero (no DNIe ni tarjetas), una firma por documento, sin sello de tiempo.

Comprobar que la firma vale

Sube el PDF firmado a VALIDe y comprueba que reconoce la firma y el titular. El validador no distingue con qué programa se hizo la firma; solo si es correcta.

Fuentes

  • Portal de Administración Electrónica, manual de instalación de Autofirma: «en entornos macOS y Windows no es necesario tener instalado un entorno de ejecución de Java. En Linux se necesita un entorno completo de ejecución de Java 8 o superior», recomendación de Java 17 y la JRE incluida en el instalador de Windows. Consultado el 2026-09-01.
  • Proyecto clienteafirma, FAQ de ejecución de Autofirma: JRE headless en Linux; certificados de curva elíptica y Java 21. Consultada el 2026-09-01.
  • Universidad de Zaragoza, «Autofirma no funciona»: el mensaje «java.util.concurrent.TimeoutException → No se pudo contactar con AutoFirma» y sus causas. Consultado el 2026-09-01.
  • Incidencia #441 de clienteafirma: «El plugin de Java no está habilitado para este navegador» y «No se pudo contactar con AutoFirma» en Linux con Firefox. Consultada el 2026-09-01.

FirmaLocal genera firmas electrónicas avanzadas basadas en certificado cualificado (PAdES-B-B), la misma clase de firma que produce Autofirma con un certificado software. No sustituye a la firma con DNIe ni a la autenticación dentro de una sede electrónica. FirmaLocal no presta asesoramiento jurídico.