يهدف XZ for Java إلى أن يكون تطبيقًا كاملاً لضغط بيانات XZ في Java خالصة.
سمات:
تم التخطيط لعملية الترابط ولكن من غير المعروف متى سيتم تنفيذها.
كود المصدر الرئيسي متوافق مع Java 8 والإصدارات الأحدث ولكن هناك فئات مخصصة لـ Java 9 أو الأحدث (module-info.java وتحسينات السرعة). تتطلب خيارات البناء الافتراضية OpenJDK 11 أو إصدار أحدث، وإنشاء ثنائيات متوافقة مع Java 8.
تذهب جميع ملفات الإخراج إلى دليل build
.
ant
لتجميع الفئات وإنشاء ملفات JAR.ant doc
لإنشاء وثائق javadoc HTML.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
إذا كنت تستخدم Ant أقدم من 1.10.2:
قم بتحرير build.xml
وإزالة modificationtime="${timestamp}"
من عناصر
.
إذا كنت تستخدم Ant أقدم من 1.9.8:
تحرير build.xml
وإزالة سمات الإصدار من علامات
، أي إزالة كافة تكرارات هذين السطرين:
release="${sourcever}"
release="${sourcever9}"
الجانب السلبي لما سبق هو أنه سيتم استخدام خيارات -source
و -target
بدلاً من --release
.
إذا كنت تستخدم إصدار OpenJDK الأقدم من 9:
للإنشاء باستخدام OpenJDK 8، استخدم -Djava8only=true
في سطر أوامر ant
. ثم لن يتم إنشاء الملفات التي تتطلب Java >= 9، ولن يكون xz.jar
عبارة عن JAR معياري.
إذا كنت تستخدم إصدار OpenJDK الأقدم من 8:
لم تعد هذه الإصدارات مدعومة. جرب XZ لـ Java 1.9 وهو متوافق مع Java 5 ولا يتطلب سوى تحرير build.properties
للإنشاء.
إذا كنت لا تستطيع أو لا تريد استخدام Ant، فما عليك سوى تجميع جميع ملفات .java ضمن دليل src
(ربما تخطي الملفات التجريبية src/*.java
). للحصول على دعم الوحدة النمطية وتحسينات السرعة (Java >= 9)، قم أيضًا بتجميع جميع ملفات .java ضمن دليل src9
.
يمكنك اختبار الضغط باستخدام XZEncDemo، الذي يضغط من الإدخال القياسي إلى الإخراج القياسي:
java -jar build/jar/XZEncDemo.jar < foo.txt > foo.txt.xz
يمكنك اختبار فك الضغط باستخدام XZDecDemo، الذي يفك الضغط إلى الإخراج القياسي:
java -jar build/jar/XZDecDemo.jar foo.txt.xz