Proteger aplicaciones JavaSE

Videos de Introducción

▶️ YouTube

▶️ Bilibili

Descargar

Visite https://protector4j.com/download para descargar la última versión

Instalación

Windows y Linux

No hay pasos de instalación especiales, simplemente descargue el archivo comprimido y extráigalo.

macOS

Descargue el archivo dmg y arrastre Protector4J a Applications. El contenido real de esta herramienta se encuentra en /Applications/Protector4J.app/Contents/protector4j-mac

Cifrar aplicaciones JavaSE con herramientas GUI

Vaya a la carpeta de Protector4J, ejecute p4j-ui[.exe], verá la siguiente interfaz de usuario.

Para usuarios de macOS, simplemente haga doble clic en Protector4J.app como una aplicación Mac normal.

Iniciar sesión

Si ya ha comprado la licencia, haga clic en el botón de inicio de sesión en la esquina superior derecha e ingrese su información de usuario. Si no tiene una licencia, aún puede probar esta herramienta.

Seleccionar Tipo de Aplicación

Haga clic en el botón "JavaSE Application" en la página de tipo de aplicación.

Seleccione el archivo jar/war que necesita ser cifrado

Seleccione los archivos jar/war que desea cifrar, puede seleccionar uno o varios archivos

Opciones

Solo cifrar archivos jar

Solo cifra los archivos jar, sin desplegar todo el jre. Esta opción generalmente se usa en combinación con la función KeySeed para actualizar programas existentes.

Crear archivo ejecutable

Crea un archivo ejecutable para iniciar la aplicación, por favor no agregue la extensión .exe.

Consola Oculta

Esta opción solo es efectiva para programas GUI en Windows y se usa para ocultar la ventana de línea de comandos durante la ejecución del programa.

Opciones de JVM

Configure las opciones de JVM, como -Xmx y -Xms, separadas por espacios o saltos de línea.

Salida

Selección de versión de Java

Elija la versión de Java, compatible con Java 8, Java 11, Java 17 y Java 21

Crear nueva carpeta

Seleccionado por defecto, la tarea de cifrado creará un archivo llamado p4j-[task-id] en la carpeta de salida. El resultado de la salida se almacena en esta carpeta.

Incluir JavaFX

Si es una aplicación JavaFX, seleccione esta opción

Aplicación SWT

Si es una aplicación SWT, seleccione esta opción.

KeySeed

La tarea de cifrado solicitará una clave aleatoria del servidor para el cifrado por defecto. Los archivos generados en diferentes tareas de cifrado no pueden usarse juntos. Si se especifica KeySeed, el mismo KeySeed generará la misma clave de cifrado. Esta opción puede usarse con la opción anterior "Solo Cifrar Archivos Jar" para actualizar aplicaciones existentes. Esta opción solo es válida para usuarios con licencia.

Ejecutar Tarea de Cifrado

Espere un momento, después de completar la tarea de cifrado, podrá ver el resultado de la aplicación cifrada en la carpeta de salida.

Ejecutar aplicaciones cifradas

Hay tres formas de ejecutar la aplicación cifrada

  1. Ejecutar con archivo exe

Si la plataforma de destino es Windows, puede ejecutar la aplicación cifrada con el archivo ejecutable generado durante la tarea de cifrado.

  1. Ejecutar con script

Si la plataforma de destino es Linux o macOS, puede encontrar un archivo de script con el nombre exe-name.sh, puede ejecutar la aplicación con este archivo de script.

  1. Ejecutar el programa con el comando Java tradicional

También puede ejecutar manualmente el programa con vlxjre/bin/java, el formato de este comando es el mismo que el comando java normal.

Podemos ver una carpeta llamada vlxjre en el directorio de salida, que es nuestro JRE personalizado, y los archivos jar cifrados se almacenan en la carpeta vlxlib.

vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass

Java 8 actualmente no admite la ejecución mediante vlxjre/bin/java -jar. Por favor use vlxjre/bin/java -cp xx MainClass

Avisos

Si la plataforma de destino de este programa es macOS o Linux, pero se construyó en Windows, ejecute add-executable-permission.sh en la plataforma de destino para otorgar permisos de ejecución al programa antes del primer inicio.

Modificar los parámetros JVM del archivo exe

Windows

Si necesita modificar los parámetros JVM del archivo exe, edite exe-name.json y modifique los valores en el array JArgs.

"JArgs": [
  "-DParam1=value1",
  "-DParam2=value2"
]

Linux y macOS

Simplemente abra el archivo de script y agregue o modifique los parámetros JVM.

Cifrar aplicaciones JavaSE con herramienta CLI.

Archivo de configuración

La herramienta CLI necesita especificar un archivo de tarea como parámetro.

Vaya a la carpeta protector4j/task-templates, encuentre java-task.yml, cópielo y modifíquelo.

# Available values: 8,11,17,21
javaVersion: 17

# The jar files that need to be encrypted
jarFiles: []
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false

## [ Executable file information ]
# The executable file name
exeFileName: ''
# Hide command line window, only valid for Windows
hideConsole: false
# The main class of this Java Application
mainClass: ''
# The splash image
splash: ''
# JVM Options
jvmOptions: []

## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# Whether this is a JavaFX application
includeJavaFX: false
# Whether this a swt gui application
swtApplication: false
# Fixed key seed, only avaiable for licensed user
# Jars encrypted in different tasks can be used together with same key seed
keySeed: ''
# The target platforms
# available values: [win, linux, mac] or empty for current platform
platforms: []

Ejecutar tarea de cifrado.

Vaya a la carpeta de Protector4J y ejecute el siguiente comando.

Linux o macOS

Para usuarios de macOS, puede encontrar la herramienta CLI en /Applictions/Protector4J.app/Contents/protector4j-mac.

./p4j -t java -f path-of-task-file

Windows

p4j -t java -f path-of-task-file

Puede ejecutar p4j --help para ver los parámetros detallados.

Ejecutar con información de cuenta

./p4j -t java -f path-of-task-file -u email -p password

Ver resultados

Después de completar la tarea de cifrado, vaya a la carpeta de salida para verificar los resultados.

Ejecutar aplicaciones cifradas

Hay tres formas de ejecutar la aplicación cifrada

  1. Ejecutar con archivo exe

Si la plataforma de destino es Windows, puede ejecutar la aplicación cifrada con el archivo ejecutable generado por la tarea de cifrado.

  1. Ejecutar con script

Si la plataforma de destino es Linux o macOS, puede encontrar un archivo de script con el nombre exe-name.sh, puede ejecutar la aplicación con este archivo de script.

  1. Ejecutar el programa con el comando Java tradicional

También puede ejecutar manualmente el programa con vlxjre/bin/java, el formato de este comando es el mismo que el comando java normal.

Podemos ver una carpeta llamada vlxjre en el directorio de salida, que es nuestro JRE personalizado, y los archivos jar cifrados se almacenan en la carpeta vlxlib.

vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass

Java 8 actualmente no admite la ejecución mediante vlxjre/bin/java -jar. Por favor use vlxjre/bin/java -cp xx MainClass

Avisos

Si la plataforma de destino de este programa es macOS o Linux, pero se construyó en Windows, ejecute add-executable-permission.sh en la plataforma de destino para otorgar permisos de ejecución al programa antes del primer inicio.