XZ for Java는 순수 Java에서 XZ 데이터 압축을 완벽하게 구현하는 것을 목표로 합니다.
특징:
스레딩이 계획되어 있지만 언제 구현될지는 알 수 없습니다.
기본 소스 코드는 Java 8 이상과 호환되지만 Java 9 이상(module-info.java 및 속도 최적화)용 클래스가 있습니다. 기본 빌드 옵션에는 OpenJDK 11 이상이 필요하며 Java 8 호환 바이너리를 생성합니다.
모든 출력 파일은 build 디렉터리로 이동됩니다.
ant 입력하여 클래스를 컴파일하고 JAR 파일을 만듭니다.ant doc 입력하십시오.ant -projecthelp 입력하세요.재현 가능한 빌드가 가능해야 합니다. JAR 메타데이터에서 파일 수정 시간에 사용될 타임스탬프를 지정해야 합니다. 타임스탬프는 현지 시간대를 사용하여 저장되므로 GMT/UTC로 재정의하는 것이 좋습니다. POSIX 시스템에서는 다음 명령이 동일합니다.
$ ANT_OPTS=-Duser.timezone=GMT
ant -Dant.tstamp.now.iso=2024-07-29T14:10:26Z
$ SOURCE_DATE_EPOCH=1722262226 TZ=UTC0 ant
Git 저장소를 사용할 수 있는 경우 커미터 날짜를 사용하는 것이 합리적인 값을 얻는 한 가지 방법입니다.
$ SOURCE_DATE_EPOCH=$(git log -n1 --pretty=%ct) TZ=UTC0 ant
1.10.2 이전 버전의 Ant를 사용하는 경우:
build.xml 편집하고 <jar> 요소에서 modificationtime="${timestamp}" 속성을 제거합니다.
1.9.8 이전의 Ant를 사용하는 경우:
build.xml 편집하고 <javac> 태그에서 릴리스 속성을 제거합니다. 즉, 다음 두 줄의 항목을 모두 제거합니다.
release="${sourcever}"
release="${sourcever9}"
위의 단점은 --release 대신 -source 및 -target 옵션이 사용된다는 것입니다.
9 이전 OpenJDK 버전을 사용하는 경우:
OpenJDK 8로 빌드하려면 ant 명령줄에서 -Djava8only=true 사용하세요. 그러면 Java >= 9가 필요한 파일은 빌드되지 않으며 xz.jar 모듈식 JAR이 아닙니다.
8 이전 OpenJDK 버전을 사용하는 경우:
이러한 버전은 더 이상 지원되지 않습니다. Java 5와 호환되며 빌드하려면 build.properties 편집만 필요한 Java 1.9용 XZ를 사용해 보세요.
Ant를 사용할 수 없거나 사용하고 싶지 않은 경우 src 디렉토리 아래의 모든 .java 파일을 컴파일하십시오(데모 파일 src/*.java 건너뛰기 가능). 모듈 지원 및 속도 최적화(Java >= 9)를 위해 src9 디렉터리 아래의 모든 .java 파일도 컴파일합니다.
표준 입력에서 표준 출력으로 압축하는 XZEncDemo를 사용하여 압축을 테스트할 수 있습니다.
java -jar build/jar/XZEncDemo.jar < foo.txt > foo.txt.xz
표준 출력으로 압축을 푸는 XZDecDemo를 사용하여 압축 풀기를 테스트할 수 있습니다.
java -jar build/jar/XZDecDemo.jar foo.txt.xz