我有一个相当复杂的项目,需要从C++(Linux)迁移到Java 当前,C++版本是作为共享库(.so)分布的,随后是顶级接口头文件类。实现细节从最终用户完全隐藏。将C++项目迁移到Java,保护实现细节
这个问题不是关于将C++代码移植到Java,而是关于创建类似的分发包。
假设我有一个非常简单的“公共”类在C++中,topapi.h
:
class TopApi
{
public:
void do(const string& v);
}
实际实现从API用户隐藏。实际的项目可能会包含do()将调用的另外100个文件/类。
分配将包含2个文件:topapi.so和topapi.h
用户将#include "topapi.h"
在他们的代码,并与topapi.so
链接他们的应用程序。
问题是: 1.如何在Java中实现类似效果(隐藏IP相关代码) 2.如何向用户显示公共方法(与代码保护无关,只是Java版本上面的头文件)
*“我怎样才能在Java中实现类似的效果?”*与使用任何其他专有产品相同的方式:许可协议中的NDA和反向逆向工程条款。 – cdhowie
这真的是一个关于混淆的问题吗?或者你只是想只公开API给用户? –
伟大的问题!其实,它们都是。虽然我在第一个问题上得到了答案(混淆),但第二个答案保持开放。我会尝试更新这个问题。 –