Protección de bibliotecas de clases Java

Library Encryption corresponde al comando de nivel inferior encode; solo genera un archivo comprimido protegido, sin copiar el entorno de ejecución ni crear scripts de inicio de aplicación.

1. Operaciones mediante GUI

  1. En la página de tipo de aplicación, seleccione Library Encryption. Si se necesita un paquete listo para ejecutarse directamente, debe elegirse en su lugar Java Application, Spring Boot o Tomcat WAR.

    Seleccionar Encriptación de Biblioteca

  2. Seleccione el JAR de entrada, la versión de Java que coincida con el entorno de carga real y la plataforma de destino, y luego elija entre el modo simple o el modo avanzado. La salida de las bibliotecas no incluye vlxjre, pero estas opciones se utilizan aún así para determinar la identidad del entorno de ejecución correspondiente al archivo comprimido; no mezcle las salidas de diferentes plataformas con el fin de reducir la cantidad de productos.

    Seleccione el JAR de la biblioteca de clases, la versión de Java, la plataforma de destino y el modo.

  3. El modo simple escanea el JAR de entrada y aplica automáticamente los sugerencias de overlay ZIP y sufijos de archivo comprimido compatibles con Library Encryption. Todavía encriptará todas las entradas .class del JAR de entrada, mientras que los demás recursos permanecerán sin encriptar.

  4. El modo avanzado permite configurar opciones según sea necesario:

    • Disable JIT for protected methods: Hace que los métodos protegidos se ejecuten únicamente en el intérprete;
    • Append scanner ZIP overlay: Proporciona recursos públicos y stubs de metadatos para las herramientas que analizan directamente el directorio central del ZIP;
    • Compatibility scan…: Escanea riesgos de compatibilidad relacionados con el acceso al ZIP, suposiciones sobre extensiones, clases JNI/nativas y lectura de bytecode en tiempo de ejecución.
  5. En la página de salida, seleccione el nombre completo del archivo de salida; generalmente se utiliza .p4jx; .jar se usa únicamente cuando el programa integrador requiere explícitamente la extensión .jar. Las sugerencias de selección o escaneo en la página avanzada de Archive suffix sincronizarán las extensiones .p4jx/.jar del archivo seleccionado. Revise la versión de Java, la plataforma de destino, JIT, scanner overlay, y luego haga clic en Run protection.

    Las tareas para una sola plataforma utilizan la ruta de archivo exacta seleccionada. Al elegir varias plataformas de destino, la interfaz gráfica creará subcarpetas según la plataforma dentro del directorio donde se encuentra el archivo, generando los archivos archivados correspondientes en cada una.

2. Escenarios de aplicación

  • Protección de los propios JAR que forman parte de otras aplicaciones P4JX controladas;
  • Carga el archivo P4JX mediante un iniciador existente;
  • Se requiere una integración avanzada para gestionar manualmente el directorio de entrega completo.

Si el objetivo es una aplicación común listo para ejecutarse, Spring Boot o Tomcat, utilice las órdenes de empaquetado correspondientes.

3. Órdenes básicas

p4j encode library.jar library.p4jx

También se pueden usar abreviaturas:

p4j library.jar library.p4jx

encode escribe el nombre del archivo de salida completo proporcionado por el usuario; por lo tanto, ambos siguientes están en formato P4JX:

p4j encode library.jar library.p4jx
p4j encode library.jar library.jar

4. ZIP overlay

p4j encode library.jar library.p4jx \
  --zip-overlay scanner

overlay solo contiene recursos públicos, directorios y marcadores de metadatos, con el fin de ser compatible con herramientas que analizan directamente el directorio central de ZIP. No revela los métodos reales de protección ni convierte a P4JX en un JAR común.

5. Requisitos en tiempo de ejecución

La capa inferior encode no genera vlxjre; el usuario debe proporcionar un entorno de ejecución VLX que coincida con la identidad utilizada durante la codificación. No se debe:

  • Usar OpenJDK/Oracle JDK comunes para cargarlo;
  • Copiar lib/modules o las bibliotecas nativas desde un paquete de otra versión;
  • Mezclar entornos de ejecución de diferentes plataformas, líneas de entrenamiento de JDK o tareas de codificación con el archivo de archivado.

Para proyectos de entrega comunes, es preferible utilizar comandos de empaquetado de capa superior para mantener automáticamente estas relaciones.

6. Licencia

Es necesario obtener con éxito una licencia emitida por el servidor e incrustarla al generar el archivo de archivado. Las cuentas oficiales y el modo de prueba siguen el mismo proceso de verificación de archivado. En entornos automatizados, no se deben codificar las contraseñas de forma directa en los scripts de tarea exportados.