Descripción |
El Java Platform Module System (JPMS) se introdujo en Java 9 y le permite organizar su código agrupando un conjunto de paquetes relacionados en componentes de nivel superior llamados módulos y proporciona un mecanismo para declarar dependencias entre módulos. Modularizar su aplicación ofrece varios beneficios: - Una aplicación cuyo código está organizado en módulos es más fácil de leer, más fácil de mantener y más escalable. - Las dependencias entre módulos se definen mediante descriptores de módulo que se verifican en el momento de la compilación y cuando se inicia la aplicación. Esta resolución temprana de dependencias ayuda a mejorar la confiabilidad del tiempo de ejecución, superando un problema de larga data en Java donde las excepciones "NoClassDefFoundError" eran causas comunes de bloqueos en las aplicaciones. - Los paquetes de un módulo son accesibles para otros módulos solo si se exportan explícitamente. Este principio, llamado encapsulamiento sólido, proporciona de forma predeterminada un espacio seguro para el código en el que la reflexión no puede invadir. - Finalmente, el sistema de módulos le permite crear imágenes de tiempo de ejecución personalizadas que contienen solo los módulos utilizados por su aplicación. El tamaño reducido del entorno de ejecución mejora notablemente el tiempo de inicio y el uso de memoria de la aplicación.
A partir de la versión 3.5.55, el archivo wrapper. ADVERTENCIA
Antes de la versión 3.5.55, wrapper. Si se utilizó 'wrapper' en algunos de los descriptores de su módulo y actualiza a la versión 3.5.55 o superior del Wrapper, no olvide cambiar el nombre a 'org.tanukisoftware.wrapper'. El Wrapper proporciona varias propiedades para ayudarle a configurar cómo su aplicación utiliza módulos:
NOTAEstas propiedades sólo se utilizan cuando se ejecutan con versiones de Java 9 o superiores. Serán ignoradas en versiones anteriores. |
wrapper.java.module_path.<n> |
||||||||
Estas propiedades se utilizan para enumerar ubicaciones donde se pueden encontrar los módulos de su aplicación. La lista puede contener directorios o rutas a archivos jar que, opcionalmente, contienen comodines en la parte del nombre del archivo. El Wrapper utilizará esta lista para crear la opción '--module-path' de la línea de comandos de Java. Si se utiliza un carácter comodín dentro de una entrada de ruta del módulo, todos los archivos coincidentes se agregarán a la ruta de módulo utilizada al iniciar una instancia de JVM. Los caracteres comodín válidos son:
NOTA
El archivo wrapper.
El Wrapper usa la propiedad wrapper.jarfile para agregar automáticamente el archivo wrapper. Classpath: Java no permite que dos archivos jar distintos que contengan el mismo paquete coexistan en la lista de rutas de módulo. Este no es el caso con classpath, donde históricamente siempre se ha permitido la superposición de paquetes. Esta es una de las razones por las que classpath sigue siendo útil, al menos hasta que una aplicación pueda migrarse completamente al sistema de módulos Java 9.
Tenga en cuenta la siguiente limitación: los archivos jar enumerados en el classpath que no se pueden encontrar en ninguna ubicación de la ruta de módulo serán utilizados por la JVM como un módulo sin nombre, lo que por naturaleza lo hace inaccesible para cualquier otro módulo.
Si se supone que se hace referencia a un módulo en una directiva requires de otro módulo, debe existir en una de las ubicaciones especificadas por las propiedades wrapper. Problemas?
Si encuentra algún problema relacionado con la ruta del módulo, lo primero que
debe hacer es verificar la ruta del módulo completa que genera el Wrapper.
Para hacer esto, habilite la salida del registro de depuración con la propiedad wrapper. NOTARuta del módulo que contiene espacios: El Wrapper manejará correctamente los elementos de la ruta del módulo que contengan espacios. Esto lo hace más tarde el Wrapper poniendo entre comillas la ruta final del módulo generado. Los valores de propiedad de los elementos de ruta de módulo individuales nunca deben definirse que contengan comillas, incluso si contienen espacios. |
wrapper.java.module_path.missing.loglevel |
||||||||
De forma predeterminada, el Wrapper registrará advertencias sobre cualquier elemento faltante de la ruta de módulo en el nivel de registro DEBUG. Es bastante común querer ver estos mensajes de registro generados sin habilitar también todos los resultados de depuración. Esta propiedad permite especificar el nivel de registro en el que se registrarán las advertencias. Los valores válidos de la propriedad incluyen:
El valor predeterminado es DEBUG.
Si a su aplicación a menudo le faltan archivos jar, configurar este valor en NONE deshabilitará las advertencias en cualquier nivel de registro. Los elementos de Ruta de Módulo que se definen como comodines también registrarán una advertencia si el comodín no coincide con al menos un archivo. Esto puede suceder si el directorio no existe o está vacío. |
wrapper.java.upgrade_module_path.<n> |
||||||
Estas propiedades definen una lista similar a wrapper.
Al igual que para wrapper. El Wrapper utilizará esta lista para construir la opción '--upgrade-module-path' de la línea de comandos de Java. NOTA
No es necesario incluir wrapper.
El Wrapper utiliza la propiedad wrapper.jarfile para agregar automáticamente wrapper. |
wrapper.java.upgrade_module_path.missing.loglevel |
||||||||
De forma predeterminada, el Wrapper registrará advertencias sobre cualquier elemento faltante en la ruta del módulo de actualización en el nivel de registro DEBUG. Es bastante común querer ver estos mensajes de registro generados sin habilitar también toda la salida de depuración. Esta propiedad permite especificar el nivel de registro en el que se registrarán las advertencias. Los valores válidos de la propriedad incluyen:
El valor predeterminado es DEBUG.
Si a su aplicación a menudo le faltan archivos jar, configurar este valor en NONE deshabilitará las advertencias en cualquier nivel de registro. Los elementos de ruta del módulo de actualización que se definen como comodines también registrarán una advertencia si el comodín no coincide con al menos un archivo. Esto puede suceder si el directorio no existe o está vacío. |
wrapper.java.module.<n> |
||||||
Estas propiedades se utilizan para enumerar los nombres de los módulos raíz utilizados por su aplicación. Los módulos raíz son módulos que no se pueden extraer en el gráfico de módulos cuando se inicia la aplicación, ya sea porque no son requeridos por ningún otro módulo o porque son dependencias opcionales (es decir, se especifican con 'requires static' en un descriptor de módulo). El Wrapper utilizará esta lista para crear la opción '--add-modules' de la línea de comando. Además de los nombres de los módulos, la lista puede incluir los siguientes tokens:
Consulte la especificación de JDK para obtener una descripción más detallada. |