这是 japicompat 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
japicompat - 测试 Java API 的二进制向后兼容性。
概要
日本兼容 [-svqhtjw4] [-要么 外档] [-一世 忽略文件]
商品描述
日本兼容 是 japitools 的一部分,旨在测试 Java API 之间的兼容性。
它们最初是为测试 Java 本身的免费实现而设计的
与 Sun 的 JDK 兼容,但它们也可用于测试向后兼容性
任何 API 的版本之间。
这些工具是 japize 和 japicompat。 Japize 是一个 Java 程序,它发出一个列表
机器可读格式的 API。 Japicompat 然后获取两个这样的列表并进行比较
它们用于二进制兼容性,正如 Sun 在 Java 语言规范中定义的那样。
配置
-s 禁用额外的二进制兼容性检查(仅执行 JLS 定义的检查)。
-v 启用检查小兼容性问题。
SerialVersionUID 检查:如果 Serializable 类,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 标志一起使用
支持忽略 JDK 版本不兼容导致的错误。
-w 禁用针对旧有缺陷的 japi 文件运行的警告。 默认情况下 japicompat
如果针对最初由旧版生成的 japi 文件运行,则会产生警告
具有 japifix 无法消除的已知错误的 japitools 版本。
-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 测试的扩展规则了。 所以当你运行一个
JDK 1.1 和你的实现之间的比较,你会得到虚假的错误
当您兼容 1.4 但不兼容 1.1 时报告。
显然你真正想要的是忽略这样的错误,和 japicompat
提供了一种方法。 首先,使用 -j 在 1.1 和 1.4 之间进行比较
转变。 然后运行 1.1 和您的实现之间的比较,传递
“-i”选项与上次运行的输出。 例如:
$ japicompat -jo 忽略-11-14.japio jdk11.japi.gz jdk14.japi.gz
$ japicompat -ho jdk11-myimpl.html -iignore-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 运行
快两倍。
要比较的 API 对应的 japi 文件。
japicompat 专门测试第二个参数是否向后兼容
与第一。 因此,JDK 1.1 的完美实现不会产生
无论参数的顺序如何都会出错,但是完美的实现
JDK1.1 加上部分 JDK1.2 应按如下方式进行测试:
$ japicompat jdk11.japi.gz myimpl.japi.gz
$ japicompat myimpl.japi.gz jdk12.japi.gz
实现通过这两个测试可能是不可能的,
因为 Sun 自己的 JDK1.2 在针对 JDK1.1 进行测试时会产生许多错误。 见
上面讨论了 -i 选项以了解处理这种情况的方法。
压缩 (.japi.gz) 或未压缩 (.japi) 文件都可以传递给
japicompat: 文件扩展名用于决定是否管道输入
通过 gzip 与否。
使用 onworks.net 服务在线使用 japicompat