זוהי הפקודה japicompat שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
japicompat - בדוק ממשקי API של Java עבור תאימות בינארית לאחור.
תַקצִיר
japicompat [-svqhtjw4] [-אוֹ outfil] [-אני התעלמות מקבצים]
תיאור
japicompat הוא חלק מ-japitools, שנועד לבדוק תאימות בין ממשקי API של Java.
הם תוכננו במקור לבדיקת יישומים חינמיים של Java עצמה עבור
תאימות ל-JDK של Sun, אך ניתן להשתמש בהם גם לבדיקת תאימות לאחור
בין גרסאות של כל API.
הכלים הם japize ו-japicompat. Japize היא תוכנית Java אשר פולטת רשימה של
API בפורמט קריא במכונה. לאחר מכן Japicompat לוקח שני רישומים כאלה ומשווה
אותם עבור תאימות בינארית, כפי שהוגדרה על ידי Sun במפרט שפת Java.
אפשרויות
-s השבת בדיקות תאימות בינאריות נוספות (עשה רק בדיקות שהוגדרו על ידי ה-JLS).
-v אפשר בדיקות לבעיות תאימות קלות.
בדיקת SerialVersionUID: japicompat מדווח על שגיאה קלה אם מחלקה ניתנת להסדרה
יש SerialVersionUID שונה בין שתי המהדורות.
בדיקת הוצאה משימוש: japicompat מדווח על שגיאה קלה אם היה כיתה או חבר
הוצא משימוש ב-API המקורי אך אינו הוצא משימוש ב-API הנבדק.
-q משבית דוחות התקדמות.
-h מייצר פלט בפורמט HTML. קובצי ה-HTML המיוצרים תלויים ב-japi.css
קובץ כדי לקבל מצגת אטרקטיבית.
-t יוצר פלט בפורמט טקסט. זוהי ברירת המחדל.
-j מייצר פלט בצורה קריאת מכונה גולמית. הפורמט המיוצר נקרא
פורמט "japio", ועל פי מוסכמה יש לשמור עם סיומת קובץ ".japio".
ניתן להשתמש בכלי השירות העצמאיים japiotext ו-japiohtml להמרת פורמט זה
לתוך html או טקסט (למעשה, japicompat קורא japiotext או japiohtml באופן פנימי אם
נעשה שימוש בדגלי -h או -t). ניתן להשתמש בקבצי Japio גם עם הדגל -i to
תמיכה בהתעלמות משגיאות הנגרמות על ידי אי התאמה בין גרסאות JDK.
-w השבת אזהרות על ריצה נגד קבצי באגי japi ישנים. כברירת מחדל japicompat
יפיק אזהרות אם יופעל נגד קבצי japi שנוצרו במקור על ידי ישנים
גרסאות של japitools שידעו באגים ש-japifix לא יכול לחסל.
-4 השתמש במצב תואם 1.4. זה עובד כל עוד ממשקי ה-API להשוואה אינם מכילים
פריטים 1.5 בלבד.
-o
שלח את הפלט ל במקום stdout. הפורמט של קובץ זה תלוי ב
הדגלים -h, -t ו-j.
-i
נניח שאתה מנסה ליישם את Java API. יש לך (די הרבה)
השלים את הסיקור של גרסאות ה-JDK המוקדמות (1.0 ו-1.1) אך עדיין יש כמה
מרחק להשגת כיסוי מלא של 1.4 (זהו תיאור מדויק של כולם
יישומי Java של תוכנה חופשית בזמן הכתיבה). שימוש ב-japicompat כדי
השווה את היישום שלך עם JDK 1.4 נותן תוצאות מדויקות, אבל אתה יכול גם
רוצה להראות את הסיקור שלך על הגרסאות הקודמות.
לרוע המזל Sun לא פעלה לפי כללי התאימות הבינארית שלהם בין JDK
משחרר, שלא לדבר על הכללים המורחבים ש-japicompat בודק. אז כשאתה מפעיל א
בהשוואה בין JDK 1.1 ליישום שלך, תקבל שגיאה מזויפת
מדווח כאשר אתה תואם ל-1.4 אך לא ל-1.1.
ברור שמה שאתה באמת רוצה זה להתעלם משגיאות כמו זו, ו-japicompat
מספק דרך לעשות זאת. ראשית, הפעל השוואה בין 1.1 ל-1.4 באמצעות ה-j
החלף. לאחר מכן הפעל את ההשוואה בין 1.1 ליישום שלך, תוך מעבר של
אפשרות "-i" עם הפלט של הריצה הקודמת. לדוגמה:
$ japicompat -jo ignore-11-14.japio jdk11.japi.gz jdk14.japi.gz
$ japicompat -ho jdk11-myimpl.html -i ignore-11-14.japio jdk11.japi.gz
myimpl.japi.gz
אתה יכול גם לקבל את אותו אפקט על ידי הפעלת:
$ japicompat -ho jdk11-myimpl.html -i jdk14.japi.gz jdk11.japi.gz myimpl.japi.gz
זה כמובן פשוט ומהיר יותר להקלדה, אבל דורש השוואה ביניהם
jdk11 ו-jdk14 יופעלו בכל פעם. הכנת קובץ japio ידנית מאפשרת
כדי שזה יישמר וישתמש בו שוב בפעם הבאה, מה שמאפשר ל-japicompat להתרוצץ
פי שניים מהר יותר.
קבצי japi התואמים את ממשקי ה-API שיש להשוות.
japicompat בודק ספציפית שהטיעון השני תואם לאחור
עם הראשון. לכן, יישום מושלם של JDK 1.1 ייצור לא
שגיאות ללא קשר לסדר הטיעונים, אך יישום מושלם של
יש לבדוק את JDK1.1 בתוספת חלקים של JDK1.2 באופן הבא:
$ japicompat jdk11.japi.gz myimpl.japi.gz
$ japicompat myimpl.japi.gz jdk12.japi.gz
כנראה שאי אפשר לבצע יישום שעובר את שני המבחנים הללו,
מאחר שה-JDK1.2 של Sun עצמו מייצר שגיאות רבות כאשר נבדק מול JDK1.1. ראה את
דיון באפשרות -i לעיל לדרך להתמודד עם מצב זה.
ניתן להעביר קבצים דחוסים (.japi.gz) או לא דחוסים (.japi) אל
japicompat: סיומת הקובץ משמשת כדי לקבוע אם להזין צינור או לא
דרך gzip או לא.
השתמש ב-japicompat באינטרנט באמצעות שירותי onworks.net