usar programa podido iniciar hacer error ejecutable como codigo aplicacion java java-9 jigsaw

programa - ¿Por qué Java 9 introdujo el formato de archivo JMOD?



error de aplicacion no se ha podido iniciar la aplicacion java (1)

Aquí hay algunas citas de JEP 261: Sistema de módulos , que contiene una sección sobre archivos JMOD.

¿Por qué?

Desde JEP 261 :

El nuevo formato JMOD va más allá de los archivos JAR para incluir código nativo, archivos de configuración y otros tipos de datos que no encajan naturalmente, si es que lo hacen, en los archivos JAR.

y

El formato final de los archivos JMOD es un problema abierto, pero por ahora se basa en archivos ZIP.

¿Debería un desarrollador publicar archivos JMOD?

Tenga en cuenta que los archivos JMOD parecen ser una forma de incorporar código nativo (entre otras cosas) en tiempo de compilación y tiempo de enlace. Desde JEP 261 :

Los archivos JMOD pueden utilizarse en tiempo de compilación y enlace, pero no en tiempo de ejecución.

(Para ser honesto, no estoy seguro de cómo se publica el código nativo anterior al JDK 9.) Para la gran mayoría de los desarrolladores (sin bibliotecas nativas u otros casos de esquina), simplemente publicaremos los frascos modulares.

Java 9 tiene tres formas de empaquetar código compilado en archivos:

  • TARRO
  • JMOD
  • Imágen

JIMAGE está optimizado para la velocidad y el espacio y es usado por la JVM en tiempo de ejecución, por lo que tiene sentido por qué se introdujo JIMAGE. No se supone que los archivos JIMAGE se publiquen en repositorios de Maven o se utilicen en tiempo de compilación o enlace.

Los documentos afirman que JMOD puede almacenar código nativo y otras cosas que los archivos JAR no pueden almacenar y que los desarrolladores pueden crear y distribuir sus propios archivos JMOD. El JDK se envía con el directorio jmods/ contiene todos los módulos del JDK para que los usuarios dependan.

Preguntas:

  • ¿Por qué Java 9 introdujo el formato de archivo JMOD?
  • ¿Debería un autor de la biblioteca distribuir un archivo JMOD o un archivo JAR o ambos?
  • ¿Deberían publicarse los archivos jmod en maven repos?