นี่คือคำสั่ง japicompat ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
japicompat - ทดสอบ Java API สำหรับความเข้ากันได้แบบย้อนหลังของไบนารี
เรื่องย่อ
จาปิคอมแพต [-svqhtjw4] [-หรือ ไฟล์นอก] [-ผม ละเว้นไฟล์]
DESCRIPTION
จาปิคอมแพต เป็นส่วนหนึ่งของ japitools ที่ออกแบบมาเพื่อทดสอบความเข้ากันได้ระหว่าง Java APIs
เดิมทีได้รับการออกแบบสำหรับการทดสอบการใช้งาน Java ฟรีสำหรับ
เข้ากันได้กับ JDK ของ Sun แต่ก็สามารถใช้สำหรับการทดสอบความเข้ากันได้แบบย้อนหลังได้
ระหว่างเวอร์ชันของ API ใดๆ
เครื่องมือเป็น japize และ japicompat Japize เป็นโปรแกรม Java ที่แสดงรายการของ an
API ในรูปแบบที่เครื่องอ่านได้ Japicompat นำรายการดังกล่าวสองรายการมาเปรียบเทียบ
สำหรับความเข้ากันได้แบบไบนารีตามที่กำหนดโดย Sun ในข้อกำหนดภาษา Java
OPTIONS
-s ปิดใช้งานการตรวจสอบความเข้ากันได้ของไบนารีเพิ่มเติม (ทำเฉพาะการตรวจสอบที่กำหนดโดย JLS)
-v เปิดใช้งานการตรวจสอบปัญหาความเข้ากันได้เล็กน้อย
การตรวจสอบ SerialVersionUID: japicompat รายงานข้อผิดพลาดเล็กน้อยหากคลาส Serializable
มี 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 buggy เก่า โดยค่าเริ่มต้น 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 to
เปรียบเทียบการใช้งานของคุณกับ JDK 1.4 ให้ผลลัพธ์ที่แม่นยำ แต่คุณอาจเช่นกัน
ต้องการแสดงความครอบคลุมของเวอร์ชันก่อนหน้าของคุณ
น่าเสียดายที่ Sun ไม่ได้ปฏิบัติตามกฎความเข้ากันได้ของไบนารีระหว่าง JDK
ปล่อยให้เป็นอิสระกฎที่ขยายที่ japicompat ทดสอบ ดังนั้นเมื่อคุณเรียกใช้ a
การเปรียบเทียบระหว่าง JDK 1.1 และการใช้งานของคุณ คุณจะได้รับข้อผิดพลาดปลอม
รายงานเมื่อคุณเข้ากันได้กับ 1.4 แต่ไม่ใช่ 1.1
เห็นได้ชัดว่าคุณต้องการละเว้นข้อผิดพลาดเช่นนี้และ japicompat
ให้วิธีการดังกล่าว ขั้นแรก ให้เรียกใช้การเปรียบเทียบระหว่าง 1.1 และ 1.4 โดยใช้ -j
สวิตซ์. จากนั้นเรียกใช้การเปรียบเทียบระหว่าง 1.1 และการใช้งานของคุณ โดยผ่าน
ตัวเลือก "-i" พร้อมเอาต์พุตของการรันครั้งก่อน ตัวอย่างเช่น:
$ japicompat -jo ละเว้น-11-14.japio jdk11.japi.gz jdk14.japi.gz
$ japicompat -ho jdk11-myimpl.html -i ละเว้น-11-14.japio jdk11.japi.gz
myimpl.japi.gz
คุณยังสามารถได้รับผลเช่นเดียวกันโดยเรียกใช้:
$ japicompat -โฮ 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
เป็นไปไม่ได้เลยที่จะทำการ Implement ที่ผ่านการทดสอบทั้งสองนี้
เนื่องจาก JDK1.2 ของซันเองสร้างข้อผิดพลาดมากมายเมื่อทดสอบกับ JDK1.1 ดู
การสนทนาเกี่ยวกับตัวเลือก -i ด้านบนเพื่อหาวิธีรับมือกับสถานการณ์นี้
ไฟล์บีบอัด (.japi.gz) หรือไฟล์ที่ไม่บีบอัด (.japi) สามารถส่งผ่านไปยัง
japicompat: นามสกุลไฟล์ใช้เพื่อกำหนดว่าจะไพพ์อินพุตหรือไม่
ผ่าน gzip หรือเปล่า
ใช้ japicompat ออนไลน์โดยใช้บริการ onworks.net