English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يتيح لك خاصية JAR المتعددة الإصدارات إنشاء مكتبات برمجية يمكنها اختيار إصدار class لتشغيلها في بيئات Java محددة.
تحديد إصدار التجميع باستخدام معامل --release.
تغييرات محددة هي إضافة خاصية جديدة إلى ملف MANIFEST.MF تحت مجلد META-INF:
Multi-Release: true
ثم تم إضافة مجلد versions جديد تحت مجلد META-INF، إذا كنت ترغب في دعم java9، فإن مجلد versions يحتوي على مجلد 9.
multirelease.jar ├── META-INF │ └── versions │ └── 9 │ └── multirelease │ └── Helper.class ├── multirelease ├── Helper.class └── Main.class
في هذا المثال، نستخدم خاصية JAR المتعددة الإصدارات لإنشاء نسختين من ملف Tester.java، إحداهما للjdk 7 والأخرى للjdk 9، ثم ننفيذها في بيئات مختلفة.
الخطوة الأولى
إنشاء مجلد c:/test/java7/com/w3codebox، وأنشئ ملف Test.java في هذا المجلد، والكود كما يلي:
package com.w3codebox; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); {} {}
الخطوة الثانية
إنشاء مجلد c:/test/java9/com/w3codebox، وأنشئ ملف Test.java في هذا المجلد، والكود كما يلي:
package com.w3codebox; public class Tester { public static void main(String[] args) { System.out.println("داخل java 9"); {} {}
تجميع الشيفرة المصدرية:
C:\test > javac --release 9 java9/com/w3codebox/Tester.java C:\JAVA > javac --release 7 java7/com/w3codebox/Tester.java
إنشاء jar متعدد الإصدارات
C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9. تحذير: الدخول META-INF/versions/9/com/w3codebox/Tester.java, الموارد المتعددة بنفس الاسم
إجراء باستخدام JDK 7:
C:\JAVA > java -cp test.jar com.w3codebox.Tester داخل Java 7
إ�行اء باستخدام JDK 9:
C:\JAVA > java -cp test.jar com.w3codebox.Tester داخل Java 9