Đây là lệnh japicompat có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
japicompat - Kiểm tra các API Java về khả năng tương thích ngược nhị phân.
SYNOPSIS
nhật bản [-svqhtjw4] [-hoặc là tập tin bên ngoài] [-tôi lờ đi]
MÔ TẢ
nhật bản là một phần của japitools, được thiết kế để kiểm tra tính tương thích giữa các API Java.
Ban đầu chúng được thiết kế để kiểm tra các triển khai miễn phí của chính Java cho
khả năng tương thích với JDK của Sun, nhưng chúng cũng có thể được sử dụng để kiểm tra khả năng tương thích ngược
giữa các phiên bản của bất kỳ API nào.
Các công cụ là japize và japicompat. Japize là một chương trình Java tạo ra một danh sách
API ở định dạng máy có thể đọc được. Japicompat sau đó lấy hai danh sách như vậy và so sánh
chúng để tương thích nhị phân, như được Sun định nghĩa trong Đặc tả ngôn ngữ Java.
LỰA CHỌN
-s vô hiệu hóa các kiểm tra tính tương thích nhị phân bổ sung (chỉ thực hiện các kiểm tra do JLS xác định).
-v cho phép kiểm tra các vấn đề tương thích nhỏ.
Kiểm tra SerialVersionUID: japicompat báo cáo một lỗi nhỏ nếu một lớp Serializable
có SerialVersionUID khác nhau giữa hai bản phát hành.
Kiểm tra việc ngừng sử dụng: japicompat báo cáo một lỗi nhỏ nếu một lớp học hoặc thành viên
không được dùng nữa trong API gốc nhưng không được dùng nữa trong API đang được kiểm tra.
-q tắt báo cáo tiến độ.
-h tạo đầu ra ở định dạng HTML. Các tệp HTML được tạo phụ thuộc vào japi.css
để có được bài thuyết trình hấp dẫn.
-t tạo đầu ra ở định dạng văn bản. Đây là mặc định.
-j tạo ra đầu ra ở dạng máy thô có thể đọc được. Định dạng được tạo ra được gọi là
định dạng "japio" và theo quy ước phải được lưu bằng phần mở rộng tệp ".japio".
Các tiện ích japiotext và japiohtml độc lập có thể được sử dụng để chuyển đổi định dạng này
thành html hoặc văn bản (thực tế, japicompat gọi nội bộ japiotext hoặc japiohtml nếu
cờ -h hoặc -t được sử dụng). Các tệp Japio cũng có thể được sử dụng với cờ -i để
hỗ trợ bỏ qua các lỗi do không tương thích giữa các phiên bản JDK.
-w vô hiệu hóa các cảnh báo để chạy đối với các tệp japi lỗi cũ. Theo mặc định japicompat
sẽ đưa ra cảnh báo nếu chạy trên các tệp japi do cũ hơn tạo ra ban đầu
các phiên bản của japitools đã biết các lỗi mà japifix không thể loại bỏ.
-4 sử dụng chế độ tương thích 1.4. Điều này hoạt động miễn là các API để so sánh không chứa
1.5 chỉ các mặt hàng.
-o
Gửi đầu ra tới thay vì stdout. Định dạng của tệp này phụ thuộc vào
cờ -h, -t và -j.
-i
Giả sử bạn đang cố gắng triển khai Java API. Bạn có (khá nhiều)
hoàn thành phạm vi bảo hiểm của các phiên bản JDK đầu tiên (1.0 và 1.1) nhưng vẫn còn một số
khoảng cách để đạt được phạm vi bao phủ đầy đủ là 1.4 (đây là mô tả chính xác của tất cả
Phần mềm miễn phí triển khai Java tại thời điểm viết bài). Sử dụng japicompat để
so sánh việc triển khai của bạn với JDK 1.4 cho kết quả chính xác, nhưng bạn cũng có thể
muốn hiển thị mức độ phù hợp của bạn về các phiên bản trước đó.
Thật không may, Sun đã không tuân theo các quy tắc tương thích nhị phân của riêng họ giữa JDK
bản phát hành, chưa kể các quy tắc mở rộng mà japicompat kiểm tra. Vì vậy, khi bạn chạy một
so sánh giữa JDK 1.1 và việc triển khai của bạn, bạn sẽ nhận được lỗi giả
báo cáo khi bạn tương thích với 1.4 nhưng không tương thích với 1.1.
Rõ ràng những gì bạn thực sự muốn là bỏ qua những lỗi như thế này, và japicompat
cung cấp một cách để làm như vậy. Đầu tiên, hãy chạy so sánh giữa 1.1 và 1.4 bằng cách sử dụng -j
chuyển. Sau đó, chạy so sánh giữa 1.1 và việc triển khai của bạn, chuyển
Tùy chọn "-i" với đầu ra của lần chạy trước. Ví dụ:
$ japicompat -jo bỏ qua-11-14.japio jdk11.japi.gz jdk14.japi.gz
$ japicopat -ho jdk11-myimpl.html -i ignore-11-14.japio jdk11.japi.gz
myimpl.japi.gz
Bạn cũng có thể nhận được hiệu ứng tương tự bằng cách chạy:
$ japicompat -ho jdk11-myimpl.html -i jdk14.japi.gz jdk11.japi.gz myimpl.japi.gz
Điều này rõ ràng là đơn giản hơn và nhanh hơn để nhập, nhưng yêu cầu so sánh giữa
jdk11 và jdk14 được chạy mọi lúc. Tạo tệp japio theo cách thủ công cho phép
để nó được lưu và sử dụng lại vào lần sau, điều này cho phép japicompat chạy
nhanh gấp đôi.
Các tệp japi tương ứng với các API được so sánh.
japicompat kiểm tra cụ thể xem đối số thứ hai có tương thích ngược không
với cái đầu tiên. Do đó, việc triển khai hoàn hảo JDK 1.1 sẽ không tạo ra
lỗi bất kể thứ tự của các đối số, nhưng việc triển khai hoàn hảo
JDK1.1 cộng với các bộ phận của JDK1.2 nên được kiểm tra như sau:
$ japicompat jdk11.japi.gz myimpl.japi.gz
$ japicompat myimpl.japi.gz jdk12.japi.gz
Có lẽ không thể thực hiện triển khai vượt qua cả hai thử nghiệm này,
vì JDK1.2 của riêng Sun tạo ra nhiều lỗi khi thử nghiệm với JDK1.1. Xem
thảo luận về tùy chọn -i ở trên để biết cách đối phó với tình huống này.
Có thể chuyển tệp nén (.japi.gz) hoặc không nén (.japi) tới
japicompat: Phần mở rộng tệp được sử dụng để xác định xem có nhập đầu vào hay không
thông qua gzip hay không.
Sử dụng japicompat trực tuyến bằng các dịch vụ onworks.net