Це команда japicompat, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
japicompat - Перевірка Java API на зворотну сумісність бінарних файлів.
СИНТАКСИС
japicompat [-svqhtjw4] [-або вихідний файл] [-і ignorefiles]
ОПИС
japicompat є частиною japitools, призначеної для перевірки сумісності між Java API.
Спочатку вони були розроблені для тестування безкоштовних реалізацій самої Java
сумісність з JDK від Sun, але їх також можна використовувати для тестування зворотної сумісності
між версіями будь-якого API.
Інструменти - japize і japicompat. Japize - це програма на Java, яка створює список файлів
API у машиночитаному форматі. Потім Japicompat бере два таких списки та порівнює
їх для бінарної сумісності, як визначено Sun у Специфікації мови Java.
ВАРІАНТИ
-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 з помилками. За замовчуванням japicompat
видасть попередження, якщо запустити з файлами japi, спочатку згенерованими старішими
версії japitools, які мали відомі помилки, які japifix не може усунути.
-4 використовувати 1.4-сумісний режим. Це працює до тих пір, поки API для порівняння не містить
Предмети лише 1.5.
-o
Надішліть вихід на адресу замість стандартного виведення. Формат цього файлу залежить від
прапори -h, -t і -j.
-i
Припустимо, ви намагаєтеся реалізувати Java API. Ви маєте (майже)
завершено охоплення ранніх версій JDK (1.0 і 1.1), але деякі все ще є
відстань для досягнення повного покриття 1.4 (це точний опис усіх
Реалізація Java безкоштовного програмного забезпечення на момент написання статті). Використання japicompat для
порівняння своєї реалізації з 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 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