XZ untuk Java bertujuan untuk menjadi implementasi lengkap kompresi data XZ di Java murni.
Fitur:
Threading direncanakan tetapi belum diketahui kapan akan dilaksanakan.
Kode sumber utama kompatibel dengan Java 8 dan yang lebih baru tetapi ada kelas untuk Java 9 atau yang lebih baru (module-info.java dan optimasi kecepatan). Opsi build default memerlukan OpenJDK 11 atau lebih baru, dan membuat biner yang kompatibel dengan Java 8.
Semua file keluaran masuk ke direktori build
.
ant
untuk mengkompilasi kelas dan membuat file JAR.ant doc
untuk membuat dokumentasi HTML javadoc.ant -projecthelp
untuk melihat semua target yang tersedia.Pembangunan yang dapat direproduksi harus dimungkinkan. Stempel waktu perlu ditentukan yang akan digunakan untuk waktu modifikasi file dalam metadata JAR. Stempel waktu disimpan menggunakan zona waktu lokal, jadi sebaiknya ganti ke GMT/UTC. Pada sistem POSIX, perintah berikut ini setara:
$ ANT_OPTS=-Duser.timezone=GMT
ant -Dant.tstamp.now.iso=2024-07-29T14:10:26Z
$ SOURCE_DATE_EPOCH=1722262226 TZ=UTC0 ant
Ketika repositori Git tersedia, menggunakan tanggal committer adalah salah satu cara untuk mendapatkan nilai yang masuk akal:
$ SOURCE_DATE_EPOCH=$(git log -n1 --pretty=%ct) TZ=UTC0 ant
Jika Anda menggunakan Ant yang lebih lama dari 1.10.2:
Edit build.xml
dan hapus atribut modificationtime="${timestamp}"
dari elemen <jar>
.
Jika Anda menggunakan Ant yang lebih lama dari 1.9.8:
Edit build.xml
dan hapus atribut rilis dari tag <javac>
, yaitu hapus semua kemunculan dua baris berikut:
release="${sourcever}"
release="${sourcever9}"
Kelemahan dari cara di atas adalah opsi -source
dan -target
akan digunakan sebagai ganti --release
.
Jika Anda menggunakan OpenJDK versi lebih lama dari 9:
Untuk membangun dengan OpenJDK 8, gunakan -Djava8only=true
pada baris perintah ant
. Maka file yang memerlukan Java >= 9 tidak akan dibuat, dan xz.jar
tidak akan menjadi JAR modular.
Jika Anda menggunakan OpenJDK versi lebih lama dari 8:
Versi ini tidak lagi didukung. Coba XZ untuk Java 1.9 yang kompatibel dengan Java 5 dan hanya memerlukan pengeditan build.properties
untuk membangun.
Jika Anda tidak bisa atau tidak ingin menggunakan Ant, cukup kompilasi semua file .java di bawah direktori src
(mungkin lewati file demo src/*.java
). Untuk dukungan modul dan optimalisasi kecepatan (Java >= 9), kompilasi juga semua file .java di bawah direktori src9
.
Anda dapat menguji kompresi dengan XZEncDemo, yang mengompresi dari input standar ke output standar:
java -jar build/jar/XZEncDemo.jar < foo.txt > foo.txt.xz
Anda dapat menguji dekompresi dengan XZDecDemo, yang mendekompresi ke keluaran standar:
java -jar build/jar/XZDecDemo.jar foo.txt.xz