يهدف 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}" من عناصر <jar> .
إذا كنت تستخدم Ant أقدم من 1.9.8:
تحرير build.xml وإزالة سمات الإصدار من علامات <javac> ، أي إزالة كافة تكرارات هذين السطرين:
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