Tham khảo tham số CLI

Ví dụ trong bài viết này sử dụng lệnh p4j được cung cấp sau khi cài đặt. Giao diện người dùng Windows được cài đặt thông qua .exe, còn giao diện người dùng macOS được cài đặt thông qua Protector4J.app trong .dmg; hình thức cài đặt giao diện người dùng không làm thay đổi cú pháp CLI dưới đây. Nếu trình cài đặt không đưa CLI vào PATH, hãy chạy nó từ lối vào dòng lệnh được cung cấp trong thư mục cài đặt của Protector4J.

p4j --help

1. Lệnh

p4j encode     <input.jar> <output.p4jx|output.jar> [options]
p4j javaapp    <input.jar> <output-dir> [options]
p4j springboot <input.jar> <output-dir> [options]
p4j tomcat     <input.war> <output-dir> [options]

Ở tầng thấp, encode cũng có thể bỏ qua tên lệnh:

p4j input.jar output.p4jx [options]

2. Tùy chọn chung

Tùy chọnGiải thích
--no-jitCấm phương thức bảo vệ JIT, thay vào đó sử dụng cách thực thi qua trình dịch
--zip-overlay off|scannerTắt hoặc bổ sung chức năng quét để xem tệp ZIP có tương thích hay không, mặc định là off
--compat-scanChỉ quét rồi thoát; không yêu cầu đầu ra các tham số
--compat-applyQuét, áp dụng các khuyến nghị thận trọng, sau đó tiếp tục quá trình mã hóa
--no-compat-excludesKết hợp với --compat-apply, không tự động thêm các lớp loại trừ được đề xuất
--account-email <email>Email tài khoản cấp phép
--account-password <password>Mật khẩu tài khoản cấp phép
--app-id <id>Mã định danh ứng dụng được chỉ định
--license-expires-in <sec>Yêu cầu số giây dùng thử hợp lệ, chịu sự ràng buộc bởi chính sách máy chủ

Các lệnh đóng gói cấp cao được hỗ trợ:

Tùy chọnMô tả
--archive-suffix p4jx|jarPhần mở rộng tệp được tạo ra sau khi nén, mặc định là p4jx; không thay đổi định dạng bên trong
--jvm-option <option>Ghi các script khởi động cho macOS/Linux và Windows; mỗi tham số chỉ được sử dụng một lần, có thể lặp lại

3. encode

p4j encode input.jar output.p4jx [options]
Tùy chọnGiải thích
--runtime-major <N>Chỉ định mục tiêu flatten cho resource view/Multi-Release, mặc định là 21

4. javaapp

p4j javaapp input.jar output-dir [options]
Tùy chọnGiải thích
--main <class>Chỉ định lớp chính để khởi động
--protect <rules>Các quy tắc cho lớp/gói cần được bảo vệ, tách bằng dấu phẩy; mặc định áp dụng cho tất cả các lớp.
--exclude <rules>Loại trừ khỏi phạm vi bảo vệ.
--javafx [<dir>]Kích hoạt JavaFX; có thể chỉ định thư mục tài nguyên cục bộ.
--javafx-webviewBắt buộc phải bao gồm WebView.
--no-javafx-webviewBắt buộc loại trừ WebView.
--no-javafxTắt JavaFX một cách rõ ràng.

5. springboot

p4j springboot input.jar output-dir [options]
Tùy chọn.Giải thích.
--main <class>Chỉ định lớp chính của Spring Boot; mặc định đọc từ Manifest
--protect <rules>Bảo vệ các lớp tương ứng trong BOOT-INF/classes
--exclude <rules>Loại trừ các lớp hoặc gói
--protect-lib <globs>Bảo vệ các tập tin JAR tương ứng của BOOT-INF/lib, được phân cách bằng dấu phẩy
--layout p4jx-fat|fat|separateXuất cấu hình bố cục, mặc định là p4jx-fat
--javafx [<dir>]Kích hoạt JavaFX; có thể chỉ định thư mục tài nguyên cục bộ
--javafx-webviewBắt buộc phải bao gồm WebView
--no-javafx-webviewBắt buộc loại trừ WebView
--no-javafxTắt JavaFX một cách tường minh

6. tomcat

p4j tomcat input.war output-dir [options]
Tùy chọnGiải thích
--exclude <rules>Loại bỏ các lớp hoặc gói trong WEB-INF/classes
--context </path>Đường dẫn context, mặc định là /app
--append-appThêm ứng dụng vào gói P4JX Tomcat hiện có
--tomcat-version auto|9|10Phát hiện tự động hoặc áp đặt phiên bản, mặc định qua CLI là auto
--precompile-jspÁp đặt việc tiền biên dịch JSP
--no-precompile-jspCấm việc tiền biên dịch JSP

7. Cú pháp quy tắc

com.example.SecretService   Lớp đơn lẻ
com.example.service         Tìm khớp gói trực tiếp
com.example.service.*       Tìm khớp gói trực tiếp
com.example.service.**      Gói và tất cả các gói con
com/example/Secret.class    Đường dẫn mục class

Nhiều quy tắc được tách bằng dấu phẩy; khi trong shell có * thì cần thêm dấu ngoặc kép:

--protect 'com.example.**' --exclude 'com.example.dto.**,com.example.config.**'

8. Biến môi trường

BiếnGiải thích
P4JX_RUNTIME_JAVA_VERSIONCác dòng huấn luyện Java dùng cho việc đóng gói cấp cao: 8/11/17/21/25
P4JX_RUNTIME_PLATFORMID nền tảng mục tiêu
P4JX_RUNTIME_CACHE_DIRThư mục lưu cache tải về VLX JRE
APP_JAVA_OPTSThêm các tham số JVM tạm thời khi chạy ứng dụng được tạo ra; hỗ trợ cả macOS/Linux và Windows

Các giá trị tương đương của thuộc tính hệ thống Java phù hợp cho các trường hợp nâng cao cần khởi động trực tiếp tệp JAR của bộ mã hóa:

-Dp4jx.runtime.java.version=<N>
-Dp4jx.runtime.platform=<platform>
-Dp4jx.runtime.cache.dir=<dir>

9. Ví dụ tự động hóa

P4JX_RUNTIME_JAVA_VERSION=21 \
P4JX_RUNTIME_PLATFORM=linux-x64 \
p4j springboot build/app.jar release/linux-x64 \
  --compat-apply \
  --protect 'com.example.service.impl.**' \
  --exclude 'com.example.dto.**,com.example.config.**' \
  --jvm-option -Xms1g \
  --jvm-option -Xmx2g \
  --app-id com.example.app

Các tùy chọn bảo vệ/không bao gồm và cấu hình rõ ràng sẽ áp đảo các gợi ý tự động. Nên ghi lại các tham số cuối cùng, giá trị SHA-256 của đầu vào và phiên bản công cụ để lưu trữ nguồn gốc phát hành.

Ví dụ về giao diện GUI, CLI, việc chỉnh sửa trực tiếp run.sh/run.bat, script khởi động Tomcat cùng ví dụ về Windows PowerShell có thể được xem tại Cấu hình tham số khởi động JVM.