GUI 가이드
GUI는 보호 작업을 마법사 방식으로 진행합니다. 흐름은 다음과 같습니다.
애플리케이션 유형 → 입력·런타임·플랫폼 → 간단 또는 고급 옵션 → Windows EXE 실행기 (선택) → 출력 확인 → 실행
1. 애플리케이션 유형
| GUI 항목 | 입력 | 출력 | 대응하는 CLI |
|---|---|---|---|
| Java 애플리케이션 | 일반 실행 가능 JAR | 완전한 애플리케이션 디렉터리 | javaapp |
| Spring Boot | Spring Boot 애플리케이션 | 완전한 애플리케이션 디렉터리 | springboot |
| Tomcat WAR | WAR | Tomcat이 내장된 디렉터리 | tomcat |
| 라이브러리 암호화 | 임의의 JAR | 단일 P4JX 아카이브 | encode |
유형을 잘못 고르면 메인 클래스, 의존성, 웹 리소스, 실행기가 제대로 처리되지 않을 수 있습니다.

2. 입력·런타임·대상 플랫폼
마법사 한 번에 입력 JAR 또는 WAR 하나를 처리합니다. 이어서 다음을 선택합니다.
- Java 버전: 8, 11, 17, 21, 25 중 하나이며 기본값은 21입니다.
- 대상 플랫폼: 여러 개를 한 번에 선택할 수 있습니다.
- 모드: 간단 모드 또는 고급 모드.
- Windows 애플리케이션 EXE 생성: 선택 사항이며, Windows 대상 플랫폼을 하나 이상 선택해야 합니다.
여러 플랫폼을 선택하면 플랫폼마다 별도의 디렉터리가 생성됩니다.

3. 간단 모드
간단 모드는 처음 패키징하는 대부분의 경우에 적합합니다. 입력 페이지를 벗어날 때 호환성 검사가 실행되고, 그 결과에 따라 다음이 정해집니다.
- 제외를 권장할 클래스
- JavaFX와 WebView를 사용할지 여부
- 스캐너 ZIP 오버레이를 사용할지 여부
.jar아카이브 확장자로 바꿀지 여부- Spring Boot의 레이아웃
- Tomcat 9와 10.1 중 무엇을 쓸지
검사 결과는 정적 분석에 따른 권장 사항이며, 실제로 실행해 본 결과가 아닙니다. 패키징한 뒤에는 반드시 대상 플랫폼에서 동작을 확인하세요.
4. 고급 모드
고급 모드에서는 아카이브 확장자 지정, JIT 비활성화 여부 결정, 스캐너 오버레이 추가, JVM 옵션 설정, 제외 규칙 정의, 애플리케이션 유형별 전용 옵션 설정을 직접 할 수 있습니다.
자세한 조작 방법, 각 옵션의 의미, 기본값, 유형별 차이는 Protector4J 고급 모드 설정을 참고하세요.

5. Windows EXE 실행기
입력 페이지에서 Windows 애플리케이션 EXE 생성(x64/x86/ARM64) 을 선택하면 옵션 페이지 다음에 실행기 페이지가 추가됩니다. 이 항목은 간단 모드와 고급 모드가 갈라지기 전에 있으므로 두 모드 모두 EXE를 만들 수 있습니다. 선택하지 않으면 바로 출력 확인 페이지로 넘어갑니다.
실행기 페이지에서는 다음을 입력할 수 있습니다.
- EXE 파일 이름: 비워 두면 입력 파일 이름을 사용하고, Tomcat은
tomcat을 사용합니다. - 실행기 모드: 콘솔, 또는 콘솔 창을 표시하지 않는 GUI.
- Windows 아이콘: 선택 사항인
.ico파일. - JVM 시작 옵션: 한 줄에 하나씩. EXE를 사용하면 이 입력란은 이 페이지에만 나타나며, 입력한 내용은 EXE와 실행 스크립트 양쪽에 기록됩니다.
- Windows 버전 정보: 파일 버전, 제품 버전, 회사 이름, 제품 이름, 파일 설명, 저작권 고지.
라이브러리 암호화는 아카이브 하나만 출력하므로 이 옵션이 없습니다. 자세한 내용은 Windows EXE 실행기 생성을 참고하세요.
6. 제외 규칙
GUI와 CLI가 같은 표기를 사용합니다.
com.example.SecretService 이 클래스만
com.example.service.* 이 패키지만
com.example.service.** 이 패키지와 모든 하위 패키지
DTO, 엔티티, 컨트롤러, 설정 클래스, JNI 브리지 클래스, 실행 시 바이트코드 확장이 필요한 클래스를 제외하면 핵심 업무 로직만 보호할 수 있습니다.
7. 출력 확인
마지막 페이지에는 다음이 표시됩니다.
- 입력 파일과 애플리케이션 유형
- Java 버전과 대상 플랫폼
- JavaFX 사용 여부
- 아카이브 형식, JIT 설정, 오버레이, Spring 레이아웃
- 보호 범위, 제외 규칙, Tomcat 컨텍스트 경로
새 폴더 만들기를 선택하면 출력 디렉터리 안에 고유한 이름의 p4jx-xxxx 하위 디렉터리를 만들어 그곳에 씁니다. 기존 Tomcat 패키지에 애플리케이션을 추가할 때는 기존 디렉터리를 직접 지정해야 하므로 이 항목을 사용할 수 없습니다.

8. 작업 파일 내보내기와 불러오기
고급 옵션 페이지와 최종 확인 페이지 모두에서 직접 편집할 수 있는 p4j-task.yml 작업 파일을 내보낼 수 있습니다. 작업 파일에는 확정된 설정이 기록됩니다.
- 입력, 애플리케이션 유형, 출력 설정
- Java 버전과 하나 이상의 대상 플랫폼
- 보호 범위, 호환성, 패키징 옵션
파일 안의 주석에는 p4j --task-file <파일> 호출 방법과 그에 해당하는 명령줄 표기가 함께 적힙니다. 계정 이메일과 비밀번호는 작업 파일에 기록되지 않습니다. 실행할 때 정식 계정 정보를 전달하지 않으면 평가판이 생성됩니다.
창 위쪽의 작업 파일 불러오기를 사용하면 YAML을 다시 읽어 작업을 복원하고 최종 확인 페이지로 바로 이동할 수 있습니다. 이전 버전이 내보낸 p4j-encrypt-run.sh와 .bat도 계속 불러올 수 있지만, GUI는 더 이상 실행 스크립트를 내보내지 않습니다.