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ọn | Giải thích |
|---|---|
--no-jit | Cấ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|scanner | Tắ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-scan | Chỉ quét rồi thoát; không yêu cầu đầu ra các tham số |
--compat-apply | Qué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-excludes | Kế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ọn | Mô tả |
|---|---|
--archive-suffix p4jx|jar | Phầ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ọn | Giả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ọn | Giả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-webview | Bắt buộc phải bao gồm WebView. |
--no-javafx-webview | Bắt buộc loại trừ WebView. |
--no-javafx | Tắ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|separate | Xuấ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-webview | Bắt buộc phải bao gồm WebView |
--no-javafx-webview | Bắt buộc loại trừ WebView |
--no-javafx | Tắt JavaFX một cách tường minh |
6. tomcat
p4j tomcat input.war output-dir [options]
| Tùy chọn | Giả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-app | Thêm ứng dụng vào gói P4JX Tomcat hiện có |
--tomcat-version auto|9|10 | Phá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-jsp | Cấ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ến | Giải thích |
|---|---|
P4JX_RUNTIME_JAVA_VERSION | Cá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_PLATFORM | ID nền tảng mục tiêu |
P4JX_RUNTIME_CACHE_DIR | Thư mục lưu cache tải về VLX JRE |
APP_JAVA_OPTS | Thê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.