使用C ++编程时,我们有头文件和源文件。当我们公司销售我们的产品(本质上只是一个有用的函数库)时,我们只向客户端提供头文件和编译的源代码(不是实际的源代码)。这样,购买代码的客户端可以看到头文件中的函数定义,并可以使用编译的代码调用这些函数。
使用Java开发的公司如何在不提供代码的情况下共享其库功能?由于Java中没有头文件,这只是通过文档完成的;即,为客户提供一个显示所有功能签名的API文档,并提供带有编译类的jar文件?
答案 0 :(得分:6)
在Java中,您不需要编译源代码 - 字节码包含您需要的所有元数据。
因此,例如,如果我创建一个包含某些方法的接口,将其编译成类文件,然后将其打包到一个jar文件中并提供该jar文件,您可以使用该接口并查看其所有成员等没有源代码。
通常,您还提供文档来解释方法等的含义,但是为了针对jar文件进行编译,它们不是必需的。
答案 1 :(得分:0)
以YWorks YFiles为例,他们提供了专有的lib,但他们对其分发进行了一些混淆(使用他们自己的obfuscator)。
至于如何使用他们的lib的指导,他们使用javadocs,一些howto文档和一些示例代码发布他们的lib。